从尚未创建的服务中获取对象

时间:2015-04-23 02:56:01

标签: angularjs

民间:

我有2个控制器,ctrlA和ctrlB - 彼此无关,但在同一页面内。

ctrlA查询一个终点并返回一个json对象tags,然后将其传递给服务方法MyService.saveTags(tags)以存储该对象。

ctrlB然后需要通过提取$scope.tags创建的tags对象来填充$ scope变量ctrlA

服务:

.factory('MyService', function($http, $q, $window) {
  var myserviceFactory = {};
  var savedTags = {};

// ..other methods..

  myserviceFactory.saveTags = function(tags) {
    if(!savedTags.tags){
      console.log('saving tags..');
      savedTags.tags = tags;
    }
  };

  myserviceFactory.getSavedTags = function() {
    console.log('returning tags..');
    return savedTags.tags;
  };

  return myserviceFactory;
})

首先调用此问题ctrlB,因此当$scope.savedTags = MyService.getSavedTags();运行时,它会返回undefined。

问题:Angular n00b在这里 - 在ctrlA填充对象后获取标记的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以在getSavedTags内的ctrlB服务方法上使用手表,以了解何时填充。像

这样的东西
$scope.$watch(function() { return MyService.getSavedTags() },function(newValue) {
   if(newValue) {
      $scope.savedTags = newValue;
   }
});
相关问题