民间:
我有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
填充对象后获取标记的最佳方法是什么?
答案 0 :(得分:1)
您可以在getSavedTags
内的ctrlB
服务方法上使用手表,以了解何时填充。像
$scope.$watch(function() { return MyService.getSavedTags() },function(newValue) {
if(newValue) {
$scope.savedTags = newValue;
}
});