2016-09-08 1 views
2

Ich habe ein Javascript Objektwertliterals wieDatenbindung in JsViews

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

ich den Text gemacht dynamisch je nach Länge, so etwas wie diese

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

Gibt es eine Möglichkeit machen, erreichen will das in JsViews? Ich schaute auf https://github.com/BorisMoore/jsviews/issues/327, aber ich bin nicht sicher, ob derselbe Ansatz in meinem Szenario anwendbar ist.

Antwort

2

können Sie versuchen, ein Helfer-Format wie dieses

html

<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); 

sehen example zu machen.

Es kann Ihnen auch hier sample nützlich sein.