修改角度承诺

时间:2013-10-22 20:48:13

标签: javascript angularjs promise

我有这样的服务(为简洁(和隐私)而修改):

angular.module('services', [])
.factory('obj', function ($http) {
    return {
       get: function () {
           return $http.get('/obj').then(function (response) {
               return response.data;
           });
       }
    }
});

它的使用方式如下:$scope.obj = obj.get();从服务器检索对象。

我可以显示对象并修改它的键的MOST,除了我似乎无法修改包含数组或其他对象的任何键。我收到类型错误:

TypeError: Cannot call method 'indexOf' of undefined

我正在尝试添加承诺对象中存在的数组的内容。我可以查看它们,只是当我尝试添加或删除它们时,angular认为它是未定义的。

为什么会这样?

1 个答案:

答案 0 :(得分:3)

在控制器中使用.then并在回调中执行逻辑:

obj.get().then(function(data) {
    $scope.obj = data;
    //do stuff
});