私は3つのコントローラを持っています:main、product、customer。コントローラAは私の「マスターページ」の一部です。コントローラBおよびCは位置に依存します。メイン角度:イベントが2回処理されるのはなぜですか?
コントローラー:
var MainController = function ($scope, $location, $rootScope, ToolbarService) {
$scope.addClicked = function() {
ToolbarService.onAddButtonClick();
};
};
app.controller({ MainController: MainController });
製品:
var ProductController = function ($scope) {
$scope.$on('handleAddButtonClick', function() {
alert('Add product');
});
};
app.controller({ ProductController: ProductController });
顧客:
var CustomerController = function ($scope) {
$scope.$on('handleAddButtonClick', function() {
alert('Add customer');
});
};
app.controller({ CustomerController: CustomerController});
toolbarService:
app.service({
ToolbarService: function ($rootScope) {
return {
onAddButtonClick: function() {
$rootScope.$broadcast('handleAddButtonClick');
}
};
}
});
私の場所が#/products
で、メインのaddClicked
が呼び出されると、「製品を追加」という警告が2回表示されます。これはなぜ誰かが手がかりを持っていますか?
あなたのページに2つの 'ng-controller =" ProductController "'がありませんか?あなたはHTMLを投稿できますか? – sh0ber
@ sh0berはい私は確信しています。 「ng-controller = "ProductController"」を検索すると、結果は1つだけです。 – Martijn
HTMLでフィードバックして関数を設定すると、すべて正常に動作するので、どういうわけか、コントローラ。たぶん、あなたのコードではない場合は、あなたのコードの他の場所で発生する – sh0ber