Javascript 使用复杂的Knockout.js对象进行数据绑定
让foreach循环在KnockOut.js中工作,我遇到了一些问题,即使我试图让代码抛出错误,它也不会。这就好像它根本没有试图绑定到表Javascript 使用复杂的Knockout.js对象进行数据绑定,javascript,jquery,knockout.js,knockout-mapping-plugin,knockout-2.0,Javascript,Jquery,Knockout.js,Knockout Mapping Plugin,Knockout 2.0,让foreach循环在KnockOut.js中工作,我遇到了一些问题,即使我试图让代码抛出错误,它也不会。这就好像它根本没有试图绑定到表 var History = function (data) { this.Average = ko.observable(data.Average); this.Count = ko.observable(data.Count); }; var DataSource = function (data) { var convertDat
var History = function (data) {
this.Average = ko.observable(data.Average);
this.Count = ko.observable(data.Count);
};
var DataSource = function (data) {
var convertData = function (array) {
return $.map(data.Data, function (option) {
return new History;
});
};
this.Data = ko.observableArray(this.convertData());
return {
'Data': this.Data
};
};
var dataMappingOptions = {
create: function (options) {
return new DataSource(options);
}
};
var dataModel = function () {
this.source = ko.mapping.fromJS({ 'Data': [], 'Percentage': 0 });
};
currentViewModel = new dataModel();
ko.applyBindings(currentViewModel);
在其他一切正常的情况下,我已经去掉了其中的许多复杂性。基本上,我使用Knockout.Mappings将AJAX响应映射到这些对象,并为计算字段添加函数。这里的HTML似乎忽略了我所做的一切;它将显示,但没有任何内容绑定到它
<table>
<thead>
<tr>
<th>Average</th>
<th>Frequency</th>
</tr>
</thead>
<tbody data-bind="foreach: kjhkjh">
<tr>
<td data-bind="text: $data.Average()"></td>
<td data-bind="value: $data.Average"></td>
<td data-bind="text: $data.Average"></td>
<td data-bind="value: $data.Average()"></td>
<td>Test</td>
</tr>
</tbody>
</table>
这部分似乎不正确。在同一语句中有两个返回。在
$.map(
也可能是您正在为数据源
对象的私有方法convertData()
引用此
。从此处删除此
:
ko.observableArray(this.convertData());
此部分似乎不正确。同一语句中有两个返回。请尝试在
$.map(
也可能是您正在为数据源
对象的私有方法convertData()
引用此
。从此处删除此
:
ko.observableArray(this.convertData());
我所犯的错误是由于在页面上放置了我的淘汰模型造成的。一旦我移动了引用下表所在的JS文件的脚本标记,它就正常工作了。这就是除了这个摘录之外,所有页面都正常工作的原因。这部分是因为我将它作为全局变量,作为页面的多个部分和几个JS f我需要引用它
尽管如此,Stockedout确实指出了一些我能够改进代码的方法。我所犯的错误是由于在页面上放置了我的敲除模型造成的。一旦我移动了指向下面的JS文件的脚本标记,该表就正常工作了。这就是除了这个摘录之外,所有页面都正常工作的原因。这在第因为我把它作为一个全局变量,作为页面的多个部分和引用它所需的几个JS文件
话虽如此,Stockedout确实指出了我改进代码的一些方法。我要补充的是,Firebug中根本没有出现错误。页面的每个其他部分都正常工作。如果您可以将代码放入JSFIDE中,If将有所帮助。我可以看到您的代码有很多错误,但如果我们可以fid,这将使每个人的生活变得更轻松修改代码。我要补充的是Firebug中根本没有出现错误。页面的其他部分都正常工作。如果你能将代码放入JSFIDLE中,If会有所帮助。我可以看到你的代码有很多错误,但如果我们能修改代码,会让每个人的生活更轻松。我还添加了一个更新,解释了我必须做的事情从javascript中的对象获取值。仍然没有。我不知道发生了什么,它甚至不会抛出错误。你能把它放到一个JSFIDLE项目中并在这里发布链接吗?我会帮你看一下。我还添加了一个更新,解释了我必须做什么才能从javascript中的对象获取值。仍然没有。我会我不知道发生了什么,它甚至不会抛出错误。你能把它放到一个JSFIDLE项目中,并在这里发布链接吗?我会帮你看一下
ko.observableArray(this.convertData());