我正在使用controllerAs语法。
我使用$ controller从父级(更像是基础或抽象)控制器继承。我不久前发现了这个question。
我注意到当我使用一个使用控制器属性(this.propName
)的函数时,它不使用当前控制器this
,而是使用父控件。{{1}}。这是demo (plunkr)。
这是我的父控制器和子控制器的gist。
答案 0 :(得分:1)
将sayMyName方法更新为以下内容:
function sayMyName() {
alert(this.me);
}
当您尝试在基本控制器上选择me
属性时,警报应从相应的实例中选择me
值,而不是在创建vm
时的实例{ p>
更新了plunker link
答案 1 :(得分:1)
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';
});