如何组合使用ngressource获得的两个对象。
每5秒钟,我打电话给我的服务以获取一条消息,我想用olders添加一条新消息。
我的Json消息:
[
{"age": 0,"id": "my first tweet","name": "Hello Sarah","snippet": "It's fabulous"},
{"age": 1,"id": "my second tweet","name": "Hello dude !","snippet": "It's fabulous"}
]
我的服务:
'use strict';
/* Services */
var listlogServices = angular.module('listlogServices', ['ngResource']);
listlogServices.factory('Log', ['$resource',
function($resource){
return $resource('log/log1.json', {}, {
query: {method:'GET', params:{}, isArray:true}
});
}]);
我的控制器和功能
'use strict';
var app = angular.module('appRecupTweetApp');
app.controller('TimerCtrl1', function TimerCtrl1($scope, Timer){
$scope.$watch(function () { return Timer.data.myTab; },
function (value) {
$scope.data = value ;
//$scope.data.push(value);
//$scope.data = $scope.data.concat(value);
}
);
});
app.service('Timer', function ($timeout, Log) {
var data = { myTab: new Array()};
var updateTimer = function () {
data.myTab = Log.query();
$timeout(updateTimer, 5000);
};
updateTimer();
return {
data: data
};
});
我尝试将我的对象与'push'和'concat'结合起来,但是不对。 更正错误(Angular说:$ scope.data未定义)
我可以在我的'Timer'服务或我的控制器中进行此操作,这是一个很好的解决方案。
在线演示:plnkr.co/edit/Vzdy9f7zUObd71Lm86Si
感谢的
纪尧姆
答案 0 :(得分:0)
您只需要在TimerCtrl1控制器中初始化$scope.data
。
app.controller('TimerCtrl1', function TimerCtrl1($scope, Timer){
$scope.data=[];
$scope.$watch(function () { return Timer.data.myTab; },
function (value) {
$scope.data = value ;
//$scope.data.push(value);
//$scope.data = $scope.data.concat(value);
}
);
});