我建了一个service
.factory('Plot', ['$resource',
function($resource){
return $resource(path, {}, {
get: {
method: 'GET'
params: { myparams: params }
}
});
}]);
现在在controller
我inject
这个service
并请求它:
$scope.data = Plot.get(params}
由于我必须从服务器获取新数据,并append
在view
中我需要向$scope.data
添加新数据。我尝试使用push
或concat
,但object
似乎不是array
(实际上是$resource
object
,我猜)。
我是AngularJS
的新手,并试图进入几种机制,我搜索了一个解决方案,但没有发现任何我的情况。
我试过这个:AngularJS - Append to a model with a $resource但它似乎不起作用
提前致谢。
答案 0 :(得分:0)
正如评论中所述,get
会返回promise
,而不是对象。简单路径:您可以使用回调函数来获取返回的数据:
Plot.get(params, function(result) {
$scope.data = result
}
如果服务器返回JSON
,那么您可以使用result.plot
之类的语法来获取嵌套对象。
答案 1 :(得分:0)
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:
答案 3 :(得分:-2)
向对象添加数据:
var data = {}; // new object
data["someKey"] = "someValue";