为什么self.content突然用函数语句(function validateContent()
而不是self.validateContent = function () {...}
引用了另一个作用域?
我通过使函数语句成为自我self.validateContent = function() {...}
上的内联语句来解决了这个问题。
component('panel', {
binding: {
Content: '<' // is filled with a unique array per used component.
},
controller: function () {
let self = this;
self.onSelect() { // is called when an item is selected.
/* item selection logic */
function validateContent(); // Validate content after selection.
self.Content.forEach(/*...*/);
// Here self is using the scope from the last created component
// and not the "true" self.
}
}
validateContent();
}
});
我希望self能够引用组件的范围,因为我没有理由使validateContent()突然引用另一个组件的范围。
但是,当将self输出到控制台时,它包含来自最后创建的组件而不是当前组件的数据。