2016-09-08 7 views
2

에 데이터 바인딩 내가 달성하기 위해 어떤 방법이 있나요 자바 스크립트가JsViews

test : { 
    length: 3, 
    text: "Please enter 3 characters" 
} 

내가이

test : { 
     length: 3, 
     text: "Please enter {{:length}} characters" 
    } 

처럼 길이를 기준으로 뭔가를 텍스트 렌더링 동적을 만들고 싶어 문자와 같은 객체가 이 JsViews에? 나는 https://github.com/BorisMoore/jsviews/issues/327을 보았지만 동일한 접근법이 내 시나리오에 적용되는지 확실하지 않습니다.

답변

2

당신은

<div id="result"></div> 

<script id="tmpl" type="text/x-jsrender"> 
    <input type="text" data-link="length"/> 
    <br/> 
    <span> {^{:~format(text, length)}} </span> 
</script> 

JS

var data = { 
    length : 3, 
    text : "Please enter {0} characters", 
} 

var _rxMark = /\{(\d+)\}/g; 
var helpers = { 
    format : function (string) { 
     var data = []; 
     for (var _i = 1; _i < arguments.length; _i++) { 
      data[_i - 1] = arguments[_i]; 
     } 
     return string.replace(_rxMark, function (substring, argIndex) { 
      var result = data[parseInt(argIndex)]; 
      return result || ""; 
     }); 
    } 
} 

var tmpl = $.templates("#tmpl"); 

tmpl.link("#result", data, helpers); 

example 볼이

HTML 같은 도우미 형식을 시도 할 수 있습니다.

여기서도 유용 할 수 있습니다. sample.