Javascript Mustache.js:为什么它会将字符串拆分为单独字符的对象
传递给Mustach的javaScript对象:Javascript Mustache.js:为什么它会将字符串拆分为单独字符的对象,javascript,mustache,Javascript,Mustache,传递给Mustach的javaScript对象: data = {}; data.list = ['title', 'editor']; data.test = function(){ console.log(this); }; 胡子模板 {{#list}} {{test}} {{/list}} 控制台中的输出(Chrome): 为什么胡子会断线?我能阻止它吗?这让我无法完成一项简单的任务: $.inArray(this, someArray); 最糟糕的是,Mustach
data = {};
data.list = ['title', 'editor'];
data.test = function(){ console.log(this); };
胡子模板
{{#list}}
{{test}}
{{/list}}
控制台中的输出(Chrome):
为什么胡子会断线?我能阻止它吗?这让我无法完成一项简单的任务:
$.inArray(this, someArray);
最糟糕的是,Mustach的String对象没有.join()方法,所以我没有机会通过循环将其粘合回去:
var str = '';
$.each(this, function(k,v){str += v;});
Mustach将数组中的值作为对象处理。通过在控制台中键入
newstring('foo')
可以看到这一点。输出类似于您看到的由Mustach生成的输出
因此,您需要更改数组以包含对象,如:
data.list = [ { value: 'title' }, { value: 'editor' } ];
以及您的{{test}
访问器:
data.test = function(){ console.log(this.value); };
data.test = function(){ console.log(this.value); };