1
我正在捡起AngularJS,我遇到了一个问题,我似乎无法看到一个变量,看起来很直观,但我无法弄清楚哪里不对。
服务
app.factory('pathModalService', function() {
var path;
return {
getPath: function(){
console.log('get path');
return path;
},
setPath: function(newPath){
console.log('set path:' + newPath);
path = newPath;
}
}
});
控制器,设置
app.controller('PathsCtrl', ['$scope', 'pathModalService', function($scope, pathModalService){
$scope.edit_path = function(){
pathModalService.setPath('test1');
}
}]);
控制器,是看
app.controller('PathModalCtrl', ['$rootScope', 'pathModalService', function($scope, pathModalService){
$scope.$watch(pathModalService.path, function() {
console.log('Change to Path');
}, true);
$scope.test = function(){
console.log(pathModalService.getPath());
}
}]);
包含的路径模式服务工作正常,因为我可以强制读取它,但除了应用程序第一次运行(奇怪)时,它看不到任何内容。
小提琴:因为path
http://jsfiddle.net/7QbCG/10/
感谢您的回答,但这并不依旧会触发呢? – 2013-05-01 05:12:42
@DavidNguyen你检查过演示吗?当你在控制台上点击'Test Set'时'Change to Path'被打印 – 2013-05-01 05:14:28
'Change to Path'不显示在你的小提琴中 – 2013-05-01 05:16:26