Knockoutjs - 我可以使用视图模型参数创建一个foreach绑定吗?
问题描述:
我想创建一个排序表,其中我列出Knockoutjs - 我可以使用视图模型参数创建一个foreach绑定吗?
我要以这种方式有些MVC模型到柯视图模型映射某些型号:
function User(data) {
this.userAlias = ko.observable(data.UserAlias);
this.userFirstName = ko.observable(data.UserFirstName);
this.userLastName = ko.observable(data.UserLastName);
};
function Day(data) {
var self = this;
self.date = ko.observable(data.Date);
self.dateStr = ko.observable(data.dateStr);
self.dtDay = ko.observable(data.dtDay);
self.value = ko.observable(data.Value);
self.users = ko.observableArray([]);
};
凡Day()
的users
值是一个数组User()
。
如何构建一个有效的数组以便将其用作参数?
答
的Day view model
会是这个样子,如果你调用Ajax ...
function Day(data) {
var self = this;
self.date = ko.observable(data.Date);
self.dateStr = ko.observable(data.dateStr);
self.dtDay = ko.observable(data.dtDay);
self.value = ko.observable(data.Value);
self.users = ko.observableArray([]);
var users = this.users;
//get users and push into observable array
$.getJSON('url', function (json) {
var mappedData = ko.utils.arrayMap(json, function (u) {
return new User(u.UserAlias, u.UserFirstName, u.UserLastName);
});
users(mappedData);
});
};
你的标记会是这个样子。 ..
data-bind="foreach: users"
你从哪里得到'User'数据? – christiandev
我使用'$ .getJSON'操作检索日期和用户数据。 – krvl
只是一个提示,看看映射插件:http://knockoutjs.com/documentation/plugins-mapping.html –