KnockoutJS 通过 ko.utils.extend 继承功能
KnockoutJS Inheriting functionality via ko.utils.extend
我正在尝试将功能从父视图模型继承到子视图模型,如下所示:
function ParentVM() {
var self = this;
self.MyFunc = function () {
console.log(self.SomeVar); // this logs "undefined"
}
}
function ChildVM() {
var self = this;
ko.utils.extend(self, new ParentVM());
self.SomeVar = "hello";
}
但是,当调用MyFunc
时,SomeVar
是未定义的。
如果有人为此苦苦挣扎,我在 KnockoutJS 框架之外找到了解决方案:
function ParentVM() {
var self = this;
self.MyFunc = function () {
console.log(self.SomeVar);
}
}
function ChildVM() {
var self = this;
ParentVM.apply(self); // this instead
self.SomeVar = "hello";
}
您可能希望在MyFunc
中使用this
而不是self
。按照现在的编写方式,MyFunc
将始终使用设置为新ParentVM
实例this
值的self
。
相关文章:
- 添加文字和评论功能更新Div
- JavaScript打印功能使日历停止工作
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 如何防止网页加载后自动启动功能
- 除修剪外的其他功能
- 悬停功能触发器
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 删除CKEditor工具栏按钮,但不删除功能
- 异步facebook功能
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- 从控制器继承了隔离的作用域以生成可重用的指令
- Javascript-经理是一个人,但不是经理本身?功能/原型继承
- KnockoutJS 通过 ko.utils.extend 继承功能
- 功能继承
- 农业网格继承功能
- 在基于Crockford's的功能继承
- 组合优于继承,这是向视图添加额外功能而不诉诸继承的更好方式
- Javascript继承具有父级父级的功能
- Javascript继承:用模块模式和$.extend覆盖功能
- 是否有一种方法可以访问从基本模块继承的dojo功能