Javascript 为什么这个js代码不起作用?

Javascript 为什么这个js代码不起作用?,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我在2模型上使用knockout.js,但这不起作用 function AppViewModel1(Name) { this.firstName = ko.observable(Name.fn); this.lastName = ko.observable(Name.ln); } function AppViewModel2(Name) { this.first = ko.observable(Name.fn); this.last = ko.observabl

我在2模型上使用knockout.js,但这不起作用

function AppViewModel1(Name) {
    this.firstName = ko.observable(Name.fn);
    this.lastName = ko.observable(Name.ln);
}

function AppViewModel2(Name) {
    this.first = ko.observable(Name.fn);
    this.last = ko.observable(Name.ln);
}

 ko.applyBindings(new AppViewModel1({ fn : "yahoo", ln: ".in" }));
 ko.applyBindings(new AppViewModel2({ fn : "gmail", ln: ".com" }));

有人能解释一下我错在哪里吗?

通常,敲除只允许绑定到单个视图模型

视图模型可以包含对其他JS对象/类的引用,但只能绑定一个视图模型

但是,有一个插件可用于在Knockout中绑定多个视图模型:


看看它是否解决了您的问题

您需要限制绑定应用于dom的哪一部分。可以在同一页面/文档上绑定多个ViewModel,但它们不能重叠。因此,请指定一些ID并将绑定限制在页面的不同部分

(可选)可以传递第二个参数,以定义要搜索文档的哪部分数据绑定属性。例如,
ko.applyBindings(myViewModel,document.getElementById('someElementId'))
。这将激活限制为ID为someElementId的元素及其子体,如果希望有多个视图模型并将每个视图模型与页面的不同区域关联,这将非常有用

例如:

function AppViewModel1(Name) {
    this.firstName = ko.observable(Name.fn);
    this.lastName = ko.observable(Name.ln);
}

function AppViewModel2(Name) {
    this.first = ko.observable(Name.fn);
    this.last = ko.observable(Name.ln);
}

ko.applyBindings(new AppViewModel1({ fn : "yahoo", ln: ".in" }),
    document.getElementById('gmailArea'));
ko.applyBindings(new AppViewModel2({ fn : "gmail", ln: ".com" }),
    document.getElementById('yahooArea'));
如果您必须在页面的相同部分访问相同的视图模型,那么您只需要将所有视图模型合并到一个视图模型中。不是很漂亮,但是生活就是这样

比如说

function AppViewModel1(Name) {
    this.gmailFirstName = ko.observable(Name.gmailFn);
    this.gmailLastName = ko.observable(Name.gmailLn);

    this.yFirst = ko.observable(Name.yFn);
    this.yLast = ko.observable(Name.yLn);
}

ko.applyBindings(new AppViewModel1({ gmailFn: "google", gmialLn: ".com", yFn : "yahoo", yLn: ".in" }));

我没有使用名称空间plulgin-jimmym链接,但它听起来很有趣。

什么不起作用?您期望什么?当我尝试访问html标记中的AppViewModel2属性时,它不会将其与对象值绑定,或者至少显示您用于访问模型属性的代码(即html中的绑定代码)