我正在书中练习,所以我不知道我是否犯了任何错误。 我有两个控制器都具有相同名称的功能:
app.controller('externalController', ['$scope', function(scope){
scope.aFunction(){
//Some code...
};
}]);
app.controller('innerController', ['$scope', function(s){
s.aFunction(){
//Some code...
};
}]);
在书中,外部控制器的功能就是这样:
<div ng-controller="externalController as Ext">
<div ng-controller="innerController">
<button ng-click="Ext.aFunction()>Button</button>
</div>
</div>
这对我不起作用,任何人都可以告诉我,如果我犯了任何错误或代码中有什么问题吗? 非常感谢。 莫罗
答案 0 :(得分:0)
基本上你使用控制器作为语法,并且你在控制器aFunction
内绑定了$scope
,而应该将它绑定到控制器this
。
当使用controllerAs
语法时,控制器变量和方法应该绑定到this
(上下文),当你使用controller as
时,控制器context
(this)通过它暴露在HTML上alias
app.controller('externalController', [function() {
var Ext = this;
Ext.aFunction = function() {
alert('Function Called');
//Some code...
};
}]);
app.controller('innerController', [function() {
var inner = this;
inner.aFunction = function() {
//Some code...
};
}]);