与此处相同的问题:AngularJS directive binding a function with multiple arguments
以下答案:https://stackoverflow.com/a/26244600/2892106
尽可能简单。
这有效:
<my-directive on-save="ctrl.saveFn"></my-directive>
使用:
angular.module('app')
.controller('MyController', function($scope) {
var vm = this;
vm.saveFn = function(value) { vm.doSomethingWithValue(value); }
});
但是当我转换为Typescript并使用真正的类时,这会破坏。
class MyController {
constructor() {}
saveFn(value) {
this.doSomethingWithValue(value);
}
}
在调试时的Typescript版本中,&#34;这个&#34;正在引用Window全局。所以我的范围在某种程度上搞砸了,但我不知道如何解决它。我怎样才能得到这个&#34;这个&#34;按预期引用MyController?
答案 0 :(得分:0)
所以我的范围以某种方式搞砸了
使用箭头功能代替方法。
class MyController {
constructor() {}
saveFn = (value) => {
this.doSomethingWithValue(value);
}
}
https://basarat.gitbooks.io/typescript/content/docs/arrow-functions.html