AngularJS - 将数据添加到现有模型

时间:2013-12-19 12:32:27

标签: javascript angularjs model

我建了一个service

.factory('Plot', ['$resource',
    function($resource){
        return $resource(path, {}, {
            get: {
                method: 'GET'
                params: { myparams: params }
            }
        });
    }]);

现在在controllerinject这个service并请求它:

$scope.data = Plot.get(params}

由于我必须从服务器获取新数据,并appendview中我需要向$scope.data添加新数据。我尝试使用pushconcat,但object似乎不是array(实际上是$resource object,我猜)。 我是AngularJS的新手,并试图进入几种机制,我搜索了一个解决方案,但没有发现任何我的情况。

我试过这个:AngularJS - Append to a model with a $resource但它似乎不起作用

提前致谢。

4 个答案:

答案 0 :(得分:0)

正如评论中所述,get会返回promise,而不是对象。简单路径:您可以使用回调函数来获取返回的数据:

Plot.get(params, function(result) {
  $scope.data = result
}

如果服务器返回JSON,那么您可以使用result.plot之类的语法来获取嵌套对象。

答案 1 :(得分:0)

来自Angularjs $resource doc

Usage:
$resource(url[, paramDefaults][, actions]);

Returns: A resource "class" object with methods for the default set of resource 
actions optionally extended with custom actions. The default set contains these 
actions:

{ 'get':    {method:'GET'},
  'save':   {method:'POST'},
  'query':  {method:'GET', isArray:true},
  'remove': {method:'DELETE'},
  'delete': {method:'DELETE'} };

The action methods on the class object or instance  object can be invoked with the 
following parameters:

* HTTP GET "class" actions: Resource.action([parameters], [success], [error])

Success callback is called with (value, responseHeaders) arguments. Error callback is 
called with (httpResponse) argument.

在你的情况下:

Plot.get(params, successCallBack(receivedValue){ 
    \\ do something with receivedValue 
})

答案 2 :(得分:0)

正如评论所说,会返回承诺,但您无需等待成功回拨。

如果您想将$scope.data用作数组,那么只需将其初始化为数组并将$ resource promises附加到它。看到这个jsfiddle:

http://jsfiddle.net/y88UB/3/

答案 3 :(得分:-2)

向对象添加数据:

var data = {}; // new object
data["someKey"] = "someValue";