Angularjs - 如何组合使用ngresource获得的两个对象

时间:2014-01-17 09:31:32

标签: javascript angularjs ngresource

如何组合使用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

感谢的

纪尧姆

1 个答案:

答案 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);
    }
  );

});