【发布时间】:2015-03-16 06:18:51
【问题描述】:
我正在尝试使用敲除和 jquery.tmpl 构建视图。我正在使用模板来构建表格,但似乎我无法正确地将数据传递给模板。 这是我的淘汰赛 ViewModel:
function ChargeModel() {
self = this;
self.Name = ko.observable("Ignar");
self.Record = ko.observableArray([]);
self.refresh = function () {
$.ajax({
url: "@Url.HttpRouteUrl("DefaultApi", new { controller = "KnockoutApi", action = "ShippingCharge" })",
type: 'GET',
dataType: 'json',
success: function (result) {
var mapped = ko.mapping.fromJS(result);
self.Record(mapped);
},
error: function (result) {
alert("smth bad happened");
}
})
}
self.refresh();
};
在 HTML 中:
<table class="table table-hover" data-bind="template: { name: 'peopleList' }"></table>
以及模板代码:
<script type="text/html" id="peopleList">
<thead>
<tr>
<th>Zone</th>
<th>${Name} </th>
<th>${$root.Record.Name}</th>
</tr>
</thead>
另外,我用简单的敲除数据绑定检查了我的数据,结果我不能像这样简单地访问我的 observable:
<label data-bind="text: Record.Name"></label>
可以这样访问:
<label data-bind="text: Record().Name"></label>
附:我检查了 JSON,它是有效的,它包含属性“名称”
【问题讨论】:
-
您忘记包含错误描述。 “似乎我无法正确地将数据传递给模板。” 不足以使用。制作一个重现错误的js小提琴。你有所有的移动位,组装它们。
-
我正在使用 VIsual Studio 调试代码,没有出现异常。我能说的一切,没有例外,并且标签
${$root.Record.Name} 没有按预期呈现 -
为什么要在 Visual Studio 中调试客户端代码?使用浏览器的开发者工具不是更好吗?
标签: javascript jquery knockout.js