我希望只有一个数组中的特定项目的部分。例如:
var items = ['first','second']
例如:
{{#items[1]}}
Slightly different styling for the second item, for no difference other than it's the second item.
{{/items[1]}}
我试过了:
{{#items.1}}
Slightly different styling for the second item, for no difference other than it's the second item.
{{/items.1}}
以及:
{{#items}}
{{#0}}
Slightly different styling for the second item, for no difference other than it's the second item.
{{/0}}
{{/items}}
但这些都不起作用。
我真的不想制作像这样的对象:
{'1':'first','2':'second'}
因为那只是讨厌。
有什么想法吗?
答案 0 :(得分:1)
在我给你一些建议/解决方法之前 就像你说的那样,它只是一些愚蠢的造型,因此与渲染或数据无关。如果它具有这种意义上的含义,您应该将其添加到数据中,以便更好地表示ts结构。
Mustache是一种无逻辑的模板语言,如果你觉得你需要Mustache语言,你应该尽可能地保持逻辑,否则只需使用Handlebars
.selector:nth-child(2) {
some: styling;
}
其次,您可以在将数据传递给Hogan之前更改数据 要么作为控制器中数据处理的一部分,要么作为js框架有时称之为视图控制器, 将它改成对象就像你说不是最好的方法,你可以把它变成一个数组的数组
[ [1,'first'], [2, 'second'] ]
如果你不需要Hogan,Handlebars的当前指数为{{@index}}
作为更改输入数据的替代方法,您可以创建一个辅助函数来为您处理该逻辑,但同样这不是真正的逻辑,它只是视觉。而胡子是一种无逻辑的模板语言,所以在开始使用这些
时要小心var items = ['first','second'];
var data = {items:items};
data.second= (function () {
var i=0;
return function () {
return i++ === 1; //index 1 being the second item in an array
}
}());
然后使用第二个帮助
{{#items}}
{{#second}}
Slightly different styling for the second item, for no difference other than it's the second item.
{{/second}}
{{/items}}