javascript - Backbone 模型可以与 Angular 一起使用吗?

标签 javascript angularjs backbone.js

这是一个 Backbone 帖子模型的示例:

var Post = Backbone.AssociatedModel.extend({
    urlRoot: ApiService.resolveRESTUrl('posts'),
    defaults: {
        age : 0,
        fname : "",
        lname : "",
        manager : null
    },
    relations:[
        {
            type:Backbone.One,
            key:'User',
            relatedModel: function(){ return $injector.get('UserModel') },
            collectionType: function(){return $injector.get('UserModel').Collection; }
        },
        {
            type:Backbone.Many,
            key:'Last3Comments',
            relatedModel:function(){ return $injector.get('CommentModel')  },
            collectionType:function(){ return $injector.get('CommentModel').Collection },
        }
    ],
    getTimeAgo:function() {},
    getPicture:function(size){
        return this.get('picture_url') ?
            ApiService.getImageResizeUrl(this.get('picture_url'),'w'+size+'xh'+size) :
            null;
    },
});

当帖子加载时,以及帖子数组中是否有使用 Angular 观察器的库(数据用“=”绑定(bind)) 然后我收到以下错误

Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting! Watchers fired in the last 5 iterations: []

还有

RangeError: Maximum call stack size exceeded at Array.toString (native)

我正在看这样的帖子:

$scope.posts=[];
$scope.$watch('posts', function(model) {
    console.log($scope.posts, model);
},true);
$scope.loadPosts=function(){
    if($scope.loading || $scope.disabled) return;

    $scope.loading=true;

    ApiService.request("posts/home",{page:$scope.page,limit:10}).success(function(data){
        $scope.loading=false;
        $scope.page++;
        if(data.error){
            alert('Error');
        } else {
            if(data.data.posts.length==0)
                $scope.disabled=true;
            $.each(data.data.posts,function(i,e){
               var post=new PostModel(e);

                $scope.posts.push(post);
            });
        }
    }).error(function(){
        alert('Error');
        $scope.loading=false;
    });
};

有人有什么想法吗?

最佳答案

我解决了我的问题,使用 Angular 的 watchCollection 而不是仅仅观看,因为 watchCollection 用于观看数组。

关于javascript - Backbone 模型可以与 Angular 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26354332/

相关文章:

css - 指令容器的高度为 0px,宽度为 0px - angularjs

backbone.js - 路由和事件——backboneJS

rest - 让 React + Backbone 应用程序在没有集合的情况下保持安静

asp.net-mvc - 如何通过 mvc 操作在 Angular 函数后重定向

javascript - Backbone : Re-render existing model in new DOM element

javascript - 为什么在 mongoose 查询之前使用 process.nextTick()?

javascript - Highcharts - 在向下钻取项上正确切换表格

javascript - 为什么点击事件不能在 span 上工作,而 will 可以在 a 上工作?

javascript - Socket.IO 不会响应

angularjs - AngularJS指令的完整列表?