访问内部功能范围的元素,而不是敲除中的外部
accessing element of inner function scope instead of outer in knockout
下面是我的代码。我的构造函数appVM中有var viewData为null,在activate中我用一些值填充它。现在我必须使用viewData的activate作用域,而不是外部作用域。我的Lis自身变量应该分配给相同的值。
var appVM = function () {
this.viewData = null;
this.subscription = ko.observable();
this.activate = function (viewActivationData) {
var self = this;
self.viewData = viewActivationData.viewData;
};
appVM.prototype.list = function () {
var self = this;
getEmpLists(self.viewData.empId);
};
您需要搜索关于闭包如何在JavaScript中工作的教程。
以下是解决您问题的几种方法:
第一:(为"this"创建一个闭包)
var appVM = function () {
var self = this;
this.viewData = null;
this.subscription = ko.observable();
this.activate = function (viewActivationData) {
self.viewData = viewActivationData.viewData;
};
appVM.prototype.list = function () {
getEmpLists(self.viewData.empId);
};
}
第二:(避免了关闭的需要)
var appVM = function() {
var viewData = null;
var subscription = ko.observable();
var activate = function(viewActivationData) {
viewData = viewActivationData.viewData;
};
var list = function() {
getEmpLists(viewData.empId);
};
return {
viewData: viewData,
subscription: subscription,
activate: activate,
list: list,
};
}
这只是两个简单的例子。还有其他方法可以解决这个问题,但这些可能是最简单的。最终,在控制和理解"这个"时,你需要使用几种不同的技术。
相关文章:
- 需要原型内部或外部的功能
- 访问内部功能范围的元素,而不是敲除中的外部
- 包括从外部文件到HTML的查询功能(使用Dropbox进行本地测试)
- AngularJS:使用虚拟机从外部调用控制器功能
- AngularJS参考工厂.来自外部模块的功能
- 当我在单击元素外部时,如何删除添加到单击元素的功能
- 异步功能取决于量角器测试中的外部模块
- 访问功能内的成员/从外部设置成员
- 单元测试控制器在NodeJS中发出外部HTTP请求的功能
- jqgrid工具栏搜索或外部搜索功能
- 具有翻转/图像交换功能的响应图像地图位于潜水器外部
- 访问Angular应用程序's来自外部非Angular插件的道具和控制器功能
- 在React中使用外部脚本功能
- 我想确保外部HTML加载后的功能
- 控制外部站点的功能
- 外部链接包含facebook连接功能
- 如何将外部方法传递给React中的无状态功能组件
- 当链接页面加载时,使用jQuery/Javascript从外部链接应用过滤功能
- 如何显示具有滚动和缩放(捏)功能的外部HTML
- 有没有比创建闭合从内部访问外部功能更干净/优雅的方法