我正在创建一个如下所示的表:
<table>
<thead>
<tr>
<th>Index</th>
<th>Last Name</th>
<th>First Name</th>
</tr>
</thead>
<tbody data-bind="foreach: $data">
<tr data-bind="css: rowClass">
<td data-bind="text: $index"></td>
<td data-bind="text: LName"></td>
<td data-bind="text: FName"></td>
</tr>
</tbody>
</table>
我正在使用knowckout.mapping 功能将我的数据从我的控制器中获取并编码为json。我的javascript在下面。
<script type="text/javascript">
$(function () {
var viewModelJSON = ko.mapping.fromJSON('@Html.Raw(jsonData)');
viewModelJSON.rowClass = ko.computed(function () {
return 'success';
});
ko.applyBindings(viewModelJSON);
});
</script>
在我为 css rowClass 添加数据绑定之前,一切都运行良好。我只是试图返回成功类,但 javascript 控制台报告“无法解析绑定”和“未定义行类”。我也尝试过声明 rowClass 函数,如:
viewModelJSON.rowClass = ko.computed(function () {
return 'success';
}, viewModelJSON);
但仍然没有运气。对我做错了什么有任何想法吗?
工作解决方案
更新我的 JavaScript 似乎解决了我的问题:
<script type="text/javascript">
$(function () {
var mapping = {
create: function (options) {
return new myImportItem(options.data);
}
}
var myImportItem = function (data) {
ko.mapping.fromJS(data, {}, this);
this.rowClass = ko.computed(function () {
return 'success';
}, this);
}
var viewModelJSON = ko.mapping.fromJSON('@Html.Raw(jsonData)', mapping);
ko.applyBindings(viewModelJSON);
});
</script>