0

기능은

내가 내가 사용자와 함수의 목록을 가지고 내보기 모델이 형식

{ 
    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; 
} 

하지만

어떻게 내가이 작업을 수행하지만, 다른 접근 할 수 didnt 한 일?

i는 사용자의 이메일을 전달하고

<div data-bind="foreach:queries"> 
    <span data-bind="text:$root.getUserInfo.bind($data,$data.email)"> 
<div/> 
+0

이는 스팬 텍스트의 결과입니다 기능() {[네이티브 코드]} – andrescabana86

+1

당신이 원하는 수행 crete 사용자를 편집하는 입력 이메일? – 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