我使用类的成员函数作为AngularJS控制器: 注意:下面的代码是从一些TypeScript代码编译的。
function Clazz(x) {
this.Member = x;
this.Func= function ($scope) {
$scope.message = '' + this.Member; // this.Member is undefined
}
}
app.controller('TaxCtrl', new Clazz('Hello').Func );
当我切换到Func
时会调用TaxCtrl
,但this
似乎不是Clazz
的实例,因为this.Member
总是未定义。
答案 0 :(得分:1)
当priest
是Func
实例的成员时,这将起作用。当角度构造函数作为对象时,正在创建一个新对象,其中Clazz
引用this
的实例。
这是一个jsbin示例:
http://jsbin.com/rocopiwila/edit?js,console
如果您尝试向控制器共享属性,请使用服务和注射剂。
答案 1 :(得分:0)
试试这个:
function Clazz(x) {
this.Member = x;
self = this;
this.Func= function ($scope) {
$scope.message = '' + self.Member;
}
}
app.controller('TaxCtrl', new Clazz('Hello').Func );