Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mustache.js:为什么它会将字符串拆分为单独字符的对象_Javascript_Mustache - Fatal编程技术网

Javascript Mustache.js:为什么它会将字符串拆分为单独字符的对象

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

传递给Mustach的javaScript对象:

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