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