我正在嘗試使用AngularJS創建一個簡單的消息服務(請參閱jsFiddle),並且它的大部分工作。但是,我的「clearAlerts()」方法似乎沒有任何效果。我是Angular的新手,所以我不確定自己做錯了什麼?如何從AngularJS的另一個控制器中的一個控制器中清除範圍?
這裏的的jsfiddle http://jsfiddle.net/uberspeck/j46Yh/
...和代碼
var App = angular.module('App', []);
function AlertsCtrl($scope, alertsManager) {
$scope.alerts = alertsManager.alerts;
}
function FooCtrl($scope, alertsManager) {
$scope.doGood = function() {
alertsManager.addAlert('Yay!', 'alert-success');
};
$scope.doEvil = function() {
alertsManager.addAlert('Noooo!', 'alert-error');
};
$scope.reset = function() {
alertsManager.clearAlerts();
};
}
App.factory('alertsManager', function() {
return {
alerts: {},
addAlert: function(message, type) {
this.alerts[type] = this.alerts[type] || [];
this.alerts[type].push(message);
},
clearAlerts: function() {
this.alerts = {}; // <= not working??
}
};
});
小提琴鏈路斷開時 –
此外,更改這一行沒有解決你在OP發佈的小提琴。 –
我意外刪除了小提琴。這是一個有效的。 http://jsfiddle.net/uberspeck/j46Yh/6/ – Brian