0

是這樣的話......功能從observableArray在淘汰賽返回數據

我有一個查詢與該格式

{ 
    query:'A query string', 
    user: '[email protected]', 
} 

在我的視圖模型我有用戶和功能的列表

var self=this; 
self.queries=ko.observableArray(
[ 
    { 
     query:'A query string', 
     user: '[email protected]', 
    } 
]); 
self.users=ko.observableArray(
[ 
    {user:'[email protected]',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

這是跨度文本的結果是:函數(){[本地代碼]} – andrescabana86

+1

你想克里特島輸入編輯用戶電子郵件? – Damien

+1

請分享更多瀏覽和查看模型。 – Damien

回答

1

有一些誤差修改我fxed。

查看:

<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 protected]', 
    }]); 
    self.users = ko.observableArray(
    [{ 
     email: '[email protected]', 
     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

+0

這個工程太棒了!感謝你的時間和你的經驗 – andrescabana86