我正在使用controllerAs语法。AngularJS控制器继承:“this”未指向子控制器
我用$控制器继承父(更像基地或抽象)控制器。不久前我发现了这个question。
我注意到,当我使用一个使用控制器属性(this.propName
)的函数时,它不使用当前控制器this
,而是使用父级控制器。这是一个demo (plunkr)。
这里有一个gist到我的两个父控制器和孩子控制器。
我正在使用controllerAs语法。AngularJS控制器继承:“this”未指向子控制器
我用$控制器继承父(更像基地或抽象)控制器。不久前我发现了这个question。
我注意到,当我使用一个使用控制器属性(this.propName
)的函数时,它不使用当前控制器this
,而是使用父级控制器。这是一个demo (plunkr)。
这里有一个gist到我的两个父控制器和孩子控制器。
更新sayMyName方法如下:
function sayMyName() {
alert(this.me);
}
当你正在试图挑选主控制器上me
财产的警报应该从相应的实例挑me
值,而不是实例被创建是vm
时
更新plunker link
var app = angular.module('myApp', [])
app.controller('BaseController',function() {
this.me = 'Base';
this.sayMe= function() {
alert(this.me);
}
});
app.controller('ChildController', function($scope, $controller) {
var controller = $controller('BaseController as base', {$scope: $scope});
angular.extend(this, controller);
this.me = 'Child';
});
良好的渔获,'M e'是一个存储在闭包中的局部变量。 – dfsq 2014-10-26 19:53:31