我需要以下代码的帮助。我想从page.js(控制器)到layout.js(控制器)的以下函数$ broadcast $。我该怎么办?感谢
$scope.addToPage = function(page_id) {
$state.go('builder', {
page: page_id
});
};
答案 0 :(得分:0)
有很多方法可以做到这一点,但是,我认为这是一个坏主意。
如果你想在任何地方调用一个函数(任何视图,控制器,服务),你需要在$rootScope
上声明它,因为$rootScope
是ngApp
实例的uniq(类似于Singletone):
angular
.module('test', [])
.run(function($rootScope) {
$rootScope.sayHello = function() { alert('Hello'); };
})
.controller('AnywhereCtrl', function($scope, $rootScope) {
$rootScope.sayHello();
})
;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<section ng-app="test">
<button ng-click="sayHello($event)">Hello</button>
<!--<div ng-controller="AnywhereCtrl"></div>-->
</section>
答案 1 :(得分:0)
为了更清楚,我有我的。
page.html中
<md-button ng-click="addToPage(page_id)">
page.js
$scope.addToPage = function(page_id) {
$state.go('builder', {
page: page_id
});
};
!!!我不想修改layout.js只是为了将page.html / js的功能带到带有$ broadcast,$ on或$ emit的layout.html / js !!!
我有相同的按钮: 的layout.html
<md-button class="md-icon-button" ng-click="addToPage(page_id)">
答案 2 :(得分:0)