【发布时间】:2013-12-30 07:07:01
【问题描述】:
我还是 Knockout 的新手。所以请原谅我的无知。这是我的代码。
C#类:
public class Person
{
public int Person_Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public List<Phone> PhoneNumbers;
}
Index.cshtml:
<ul id="items" data-bind="foreach: person">
<li class="item">
<div class="item-meta" data-bind="text: $data.Name"></div>
<div class="item-action">
<span data-bind="text: $data.Email"></span>
</div>
</li>
</ul>
Javascript:
function PersonViewModel() {
var self = this;
self.person = ko.observableArray();
$.getJSON(baseUri, self.person);
}
如何遍历电话列表。我可以在 Firebug 中看到 JSON 数据。
TIA
【问题讨论】:
-
你试过
foreach -
你的意思是 foreach: person.PhoneNumbers??我试过这样 -
-
您看到的是 observable 中的数据还是只是一个序列化对象。在 firebug 中,您应该能够在函数上设置断点,然后使用控制台键入 self.person()[0].Email() 中的内容以查看实际值。如果是这种情况,那么它可能在绑定中。由于您将上下文设置为人员,因此您不需要使用 $data。在您的代码中,您没有列出 ko.applyBindings(PersonViewModel) 但我假设您将其作为 js 文件的一部分正确吗?
-
我认为这与您正在寻找的内容相似:knockoutjs.com/examples/collections.html
-
您是否尝试过通过将 foreach 链接到 foreach 来评估它:person()
标签: c# asp.net asp.net-mvc asp.net-mvc-4 knockout.js