angularjs - Restangular 响应和 ng-repeat

标签 angularjs node.js sails.js restangular

我最近开始学习使用 restangular 与我的 restfull API (sails) 对话的 angularjs。我偶然发现的问题是,在我更改范围内的列表后,ng-repeat 不会更新。

Controller :

app.controller('UsersCtrl', ['UsersSvc', '$scope', function(UsersSvc, s) {
    UsersSvc.getList().then(function (new_users) {
        s.users = new_users;
    })
    s.destroy = function (user) {
        user.remove().then(function () {
        s.users = _.without(s.users, user);
    });
}
}]);

服务:

app.factory('UsersSvc', function(Restangular) {
    return Restangular.all('users');
});

模板:

<div ng-controller="UsersCtrl">
    ...
    <tr ng-repeat"user in users">  
          <td>{{user.firstName}}</td>  
          <td>{{user.lastName}} </td>  
          <td>{{user.emailAddress}}</td>  
          <td>{{user.age}}</td>  
    </tr> 
    ...
</div>

当我检查范围时,restangular 对象数组已正确分配给用户 Controller 的范围,但模板拒绝更新。

提前致谢

最佳答案

AngularJS(和 javascript)关心引用与覆盖。所以为了安全起见,我总是首先设置我的范围变量,然后使用 angular.copy()Restangular.copy() 进行更新(如果它是一个 Restangular 对象) .

下面是我将如何重构您的 Controller 以确保绑定(bind)和摘要循环保持连接。

(请注意,我将 s 重命名为“传统”$scope,以便于其他人阅读)

app.controller('UsersCtrl', ['$scope', 'UsersSvc', 'Restangular', function($scope, UsersSvc, Restangular) {

    // we're expecting a list, so default as array
    $scope.users = [];

    UsersSvc.getList().then(function (new_users) {
        // In normal $resource/ng projects use: angular.copy(src, dst) but
        // Restangular has an issue when using angular.copy():
        // https://github.com/mgonto/restangular/issues/55
        // so use their version of copy():
        Restangular.copy(new_users, $scope.users);
    });

    $scope.destroy = function (user) {
        user.remove().then(function () {
        $scope.users = _.without($scope.users, user);
    });
}
}]);

关于angularjs - Restangular 响应和 ng-repeat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23318127/

相关文章:

javascript - ng-if 不使用简单的 javascript

angularjs - 首次单击文本框时如何显示自动完成下拉菜单?

javascript - angularjs ng-pattern根据正则表达式条件更改元素的CSS样式

javascript - 跟踪聊天系统中的消息

javascript - Promise then 和 catch 条款不起作用

node.js - 未触发 sailsjs beforeCreate

mocha.js - 是否可以针对Sails.js中的模型使用Mocha框架?

javascript - SPA 在在线托管中不起作用

javascript - https 循环请求,在发出最后一个请求后调用函数 Node

node.js - 是否有 RESTful 资源的客户端管理面板框架之类的东西?