为什么在使用返回的RequireJS函数中声明的Click绑定时未定义
Why is Click binding undefined when using this declared in a returned RequireJS function
我使用的是RequireJS,如下代码所示。但是,如果我在返回的函数中声明了这一点,我就无法使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">
viewModelA内部/外部的this
根据函数的调用方式而不同。您正在返回其他人正在调用的viewModelA。
试试这个
return function viewModelA() {
var self = this;
self.SelectedTableRow = function(selectedRowData){
// Do something with return value
};
}.bind(this)
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- Fancybox是否将Click事件静音
- 直接在函数声明上使用function.prototype.bind
- jQuery:.click(function(){(element),collapse('show',f
- 获取HTML属性中CSS声明的值
- 对API数据使用声明性绑定
- 可以Resharper在我的javascript函数声明中添加分号
- 如何为排除无穷大和NaN的数字声明Flow类型
- 此行是否包含函数声明
- Javascript以不同的方式声明数字
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- Angular,表达式{{}}的结果没有插入到ng-click中
- 具有相同类的jquery-click元素
- Ng隐藏在Ng-click元素之外
- 使用同一对象中的其他变量声明变量
- document.getElementById(“st”).click();不起作用
- 如何在AngularJS工厂中正确声明对象属性
- 为什么在使用返回的RequireJS函数中声明的Click绑定时未定义
- 如何使用在click函数中声明的变量
- 我如何添加一个ng-click到一个已经声明的Ionic导航栏