我试图在另一个控制器内调用一个控制器,为一个特定的div命名。
如何在 myapp-controll 控制器内调用控制器烹饪?
<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>
答案 0 :(得分:1)
有几种方式,有些方式比其他方式更差:
您可以使用myapp-controller
从$scope.$parent
调用父作用域来使用作用域继承。这种方式非常脆弱,因为如果在某个点上在该链的中间引入了另一个范围,则代码将会中断。这很可能通过诸如ng-repeat
,ng-if
之类的东西来实现。另外,Angular 2.0正在取消$ scope,所以如果你想让你的代码在未来证明,我会远离这种方法
您可以使用事件委派,使用$scope.$emit
在范围链中发送事件信息:
MyApp的控制器:
$scope.$emit("eventName", eventData);
应用控制器:
$scope.$on("eventName", callbackFn);