2013-05-13 2 views
5

나는 관찰 가능한 배열을 가진 뷰 모델을 가지고 있습니다. 일부 JSON과 그것의 인구 :의 결과로 요소의 텍스트를 데이터 바인딩녹아웃 템플릿 - 템플릿 데이터가 전달 된 함수에 텍스트 바인딩하기

<ul id="tiles-ul" data-bind="template: {name:'twitter_template', foreach:socialTiles}"> 



<script type="text/html" id="twitter_template"> 
    <li class="social-tile box-shadow"> 
    <div class="header"> 
     <div class="header-img"> 
     <img data-bind="attr: { src: actor.avatar}"> 
     </div> 
     <div class="name_and_time"> 
     <span class="full-name" data-bind="text: actor.title"></span> 
     <span class="twitter-name" data-bind="text: actor.id"></span> 
     <span class="how-long-ago" > 5 minutes ago </span> 
     </div> 
    </div> 
    <div class="message-content" data-bind="html: object.content"> 
    </div> 
    <div class="footer"> 
     <div class="social-icon-twitter"> 
     </div> 
    </div> 

    <span data-bind="text: $index"></span>  
    </li> 
</script> 

ID와 같은 :

this.socialTiles = ko.observableArray([]); 

ko.computed(function() { 

    jQuery.getJSON(this.apiURL+"&callback=?", function (data) { 

    var theData = data.entries; 
    tilesModel.socialTiles(theData); 
    console.dir(theData); 
    }); 
}, tilesModel); 

모델의 각 항목에 대해, 나는 템플릿을 사용하여 리튬을 구축 모델로부터의 현재 데이터를 인수로 사용하는 함수. 예 :

actor.id 함수에 그 문자열을 전달하고 "#iamdiddy"표현을 반환

내가 원하는 ("http://twitter.com/iamdiddy"등)을 사용자의 트위터의 URL을 포함하는 문자열이다. 뷰 모델 나는이 할 수있는 (인수 함수를 호출을 ... 앞에 # 추출 할) 방법

function getTwitterTag("twURL"){ 
    return ... whatever; 
} 

에서

<span class="twitter-name" data-bind="text: getTwitterTag(actor.id)"></span> 

? 녹아웃이이 기능을 지원합니까?

답변

19

한번에 변경

<span class="twitter-name" data-bind="text: getTwitterTag(actor.id)"></span> 

<span class="twitter-name" data-bind="text: $root.getTwitterTag($data)"></span> 
+0

$ root.getTwitterTag (actor.id) 작동하지 않았다,하지만 일을했다 어쨌든 답을 받아, $ root.getTwitterTag ($ 데이터)이었다 내가 올바른 해결책을 발견하도록 유도했기 때문에 – nuway

관련 문제