我有三个控制器:主要,产品,客户。控制器A是我“主页”的一部分。控制器B和C取决于位置。
控制器主:
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
且调用了main addClicked
时,我会收到两次“添加产品”提醒。有没有人知道为什么会这样?
答案 0 :(得分:30)
问题是我还在路线中声明了一个控制器。所以我在html页面上配置了一个控制器,在路由提供者中配置了一个控制器。这导致一切都执行了两次..