[英]Why is Click binding undefined when using this declared in a returned RequireJS function
我正在使用Require JS,如下面的代码所示。 但是,如果我在返回的函数中声明了click绑定,则无法使其起作用。
这不起作用:
return function viewModelA() {
var self = this;
self.SelectedTableRow = function(selectedRowData){
// Do something with return value
};
}
这有效:
var self = this;
return function viewModelA() {
self.SelectedTableRow = function(selectedRowData){
// Do something with return value
};
}
完整的代码:
define(function(require){
var $ = require ('jquery');
var ko = require ('knockout');
var viewModelB = require ('ViewModelB/ViewModelB');
var self = this;
return function viewModelA() {
var self = this;
self.member = {};
self.member.countries = ko.observableArray();
$.getJSON('https://restcountries.eu/rest/v1/all', function(data) {
self.member.countries(data);
});
self.SelectedTableRow = function(selectedRowData){
// Do something with return value
};
return{
member: self.member
}
}
});
缩写HTML:
<tbody data-bind="foreach: member.countries">
<tr data-bind="click: SelectedTableRow, clickBubble: false">
this
内部/外部viewModelA根据调用函数的方式而有所不同。 您正在返回被其他人调用的viewModelA。
尝试这个
return function viewModelA() {
var self = this;
self.SelectedTableRow = function(selectedRowData){
// Do something with return value
};
}.bind(this)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.