我试图将值从服务$watch
传递到另一个模块中的控制器。但是,它始终是temp变量的初始值,而不是$watch
更新后的temp修改值。
如何为控制器提供新的temp值?最初,全局变量temp设置为null
,并且在更新$watch
时,将temp定义为来自$watch
的更新值。
这应该反映在zklm
控制器中,但是zklm
仅选择初始值null
。
abc = angular.module("abcModule", [])
abc.factory("abcMain", ["$location", "$rootScope", "$q",
function("$location", "$rootScope", "$q") {
function watchingURL() {
var temp = null
return {
urlUpdatedValue: $rootScope.$watch(function() {
return $location.path();
}, function(loc) {
console.log("$location.path() ", $location.path(loc).$$absUrl)
temp = $location.path(loc).$$absUrl
})
}
}
}
return {
watchingURL: watchingURL
}
}])
cde = angular.module("cdeModule", ["abcModule", "zklmModule"])
abcdef.run("abcMain", function(abcMain) {
abcMain.watchingURL()
})
zklm = angular.module("zklmModule", ["abcModule"])
zklm.controller("zklmController", ["abcMain", function(abcMain) {
console.log("temp is", zklmController.watchingURL())
}])