1

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

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

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

我可以显示对象并修改它的大部分键,但我似乎无法修改任何包含数组或其他对象的键。我收到一个类型错误:

TypeError: Cannot call method 'indexOf' of undefined

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

为什么会这样?

4

1 回答 1

3

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

obj.get().then(function(data) {
    $scope.obj = data;
    //do stuff
});
于 2013-10-22T20:49:46.417 回答