javascript - 有没有办法在 knockoutjs 中扩展现有的 View 模型?

标签 javascript knockout.js knockout-2.0

我有这样的代码:

function ModelA() {
    var self = this;

    self.Message = ko.observable("Mesage");
}

ko.applyBindings(new ModelA());

我想以某种方式继承另一个模型已经绑定(bind)的模型:

function Modelb() {
    var self = this;

    self.Message2 = ko.observable("Mesage2");
}

我该怎么做?

最佳答案

作为 damiens 答案的替代方案,如果您尝试将原始模型扩展到的模型是动态的,那么您最好在原始模型中创建一个观测值。

function ModelA() {
    var self = this;

    self.Message = ko.observable("Message");
    self.SubModel = ko.observable();

    self.extendModelB = function() {
        self.SubModel(new ModelB());
    }

    self.extendModelC = function() {
        self.SubModel(new ModelC());
    }
}

function ModelB() {
    var self = this;

    self.Message2 = ko.observable("Message2");
}

function ModelC() {
    var self = this;

    self.Message3 = ko.observable("Message3");
}

然后在 SubModel 可观察对象上使用 with 绑定(bind)。只是另一种选择。

关于javascript - 有没有办法在 knockoutjs 中扩展现有的 View 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17263003/

相关文章:

javascript - KnockoutJS - 当 remove 不是函数时如何从 observableArray 中删除对象?

javascript - KnockoutJS 与 Sammy.js SPA 建议

javascript - 遍历一组 tr 并通过 jquery 中的索引转义特定的 tr

javascript - Bootstrap .form-control 和 RecurlyJS iframe

javascript - 代码镜像和Javascript : how to capture Control Keys

javascript - 使用 knockoutjs 加载绑定(bind)?

knockout.js - KnockoutJS - 对 ko.computed 和 AJAX 请求的不满

javascript - 如何记录 JavaScript 对象(从 UML Angular )

javascript - 在knockoutJs中使用父ID的嵌套菜单

javascript - knockout 具有相同名称变量冲突的多个 View 模型?