Javascript Angularjs,如何从另一个控制器调用控制器
我试图调用另一个控制器中的控制器,为特定的div命名 如何在myapp controll控制器中调用控制器cookJavascript Angularjs,如何从另一个控制器调用控制器,javascript,jquery,html,angularjs,angularjs-scope,Javascript,Jquery,Html,Angularjs,Angularjs Scope,我试图调用另一个控制器中的控制器,为特定的div命名 如何在myapp controll控制器中调用控制器cook <html ng-app="myapp"> <body ng-controller="myapp-controll"> <ng-view></ng-view> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.0
<html ng-app="myapp">
<body ng-controller="myapp-controll">
<ng-view></ng-view>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.2/angular.min.js"></script>
<script type="text/javascript">
var myapp = angular.module('myapp', []);
myapp.config(function($routeProvider) {
$routeProvider
.when('/:acess', {
templateUrl : 'sources/default.html',
controller : 'myapp-controll'
})
});
myapp.controller('myapp-controll', function($scope, $routeParams) {
$scope.templateUrl = 'sources/'+$routeParams.acess+'.html';
});
myapp.controller('cook', function($scope, $routeParams) {
$scope.pagetitle = 'cook';
});
</script>
</body>
</html>
var myapp=angular.module('myapp',[]);
myapp.config(函数($routeProvider){
$routeProvider
.when(“/:access”{
templateUrl:'sources/default.html',
控制器:“myapp控制器”
})
});
myapp.controller('myapp-controll',函数($scope,$routeParams){
$scope.templateUrl='sources/'+$routeParams.acess+'.html';
});
myapp.controller('cook',函数($scope,$routeParams){
$scope.pagetitle='cook';
});
有两种方法,有些方法比其他方法更糟:
$scope.$parent
从myapp controller
调用父作用域,可以使用作用域继承。这种方式非常脆弱,因为如果在某个点中间引入另一个范围,则代码将中断。这很可能是通过ng repeat
,ng if
等方式实现的。另外,Angular 2.0正在取消$scope,因此如果您想让代码成为未来的证明,我将远离这种方法$scope.$emit
向作用域链发送事件信息,可以使用事件委派:$scope.$emit("eventName", eventData);
$scope.$on("eventName", callbackFn);
应用程序控制器:
$scope.$emit("eventName", eventData);
$scope.$on("eventName", callbackFn);
您还可以获取控制器所在并调用的元素。$scope(),但是#3确实是处理跨控制器通信的广泛接受的方式。