情况就是这样......
我有这种格式的查询
{
query:'A query string',
user: 'email@user.com.ar',
}
在我的视图模型中,我有一个用户列表和一个函数
var self=this;
self.queries=ko.observableArray(
[
{
query:'A query string',
user: 'email@user.com.ar',
}
]);
self.users=ko.observableArray(
[
{user:'email@user.com.ar',data_of_user:{name:'User Name'}}
])
self.getUserInfo=function(email)
{
var data_user=_.findWhere(self.users(),{email:email});
return data_user.data_of_user.name;
}
但没有工作
我怎么能用其他方法做到这一点?
我需要创建一个可以传递用户电子邮件并获取名称
的范围<div data-bind="foreach:queries">
<span data-bind="text:$root.getUserInfo.bind($data,$data.email)">
<div/>
答案 0 :(得分:1)
修复了一些错误。
查看:
<div data-bind="foreach:queries">
<div data-bind="with: ($root.getUserInfo($data))">
<!-- user context -->
<span data-bind="text: email"></span>
<span data-bind="text: data_of_user.name"></span>
</div>
<div/>
JS:
var VM = function () {
var self = this;
self.queries = ko.observableArray(
[{
query: 'A query string',
email: 'email@user.com.ar',
}]);
self.users = ko.observableArray(
[{
email: 'email@user.com.ar',
data_of_user: {
name: 'User Name'
}
}])
self.getUserInfo = function (user) {
var user = _.findWhere(self.users(), {
'email': user.email
});
return user;
}
;
};
ko.applyBindings(new VM());
<强> See Fiddle 强>