【问题标题】:knockout js stuck with very simple but can't淘汰赛js坚持非常简单但不能
【发布时间】:2013-03-07 00:42:01
【问题描述】:

我从服务器获取了一些 json 对象,但无法将它们显示在我的视图中。我做错了什么。

我在这里有一个 jsfiddle:http://jsfiddle.net/cy6kC/

 var volModel = function() {
 self.Vol = ko.observable({"ID": 1,"Name": 1});
 }
 var volunteerModel = new volModel();
 ko.applyBindings(new volunteerModel());

【问题讨论】:

  • 你试过了吗:ko.applyBindings(volunteerModel);您正在初始化视图模型两次,我不希望这样做。
  • 你的代码很奇怪。你的 volunteerModel 已经是一个对象,所以你不需要调用它 new volunteerModel() 这甚至不是一个有效的 JS 语法。顺便说一句,您的绑定应该是data-bind="value: Vol().ID"
  • 把这个作为答案。有效。谢谢

标签: knockout.js knockout-mapping-plugin knockout-2.0 knockout-mvc


【解决方案1】:

您当前的代码有两个问题:

第一

var volunteerModel = new volModel();
ko.applyBindings(new volunteerModel());

会抛出一个TypeError: object is not a function,因为volunteerModel 是一个对象,所以你不能用new 调用。你只需要写:

var volunteerModel = new volModel();
ko.applyBindings(volunteerModel);

第二

您当前的绑定已损坏

<input data-bind="value: Vol.ID" />

因为Vol 是可观察的(这是一个函数),如果您在表达式中使用它,则需要()

<input data-bind="value: Vol().ID" />

演示JSFiddle.

【讨论】:

  • 你是对的。谢谢..,我想我惹恼了某人,他们把这个问题记下来了:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-22
  • 2019-10-31
  • 2013-11-14
  • 2015-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多