我可能会在这里稍微过度工作,但是对于如何完成这项工作的任何见解都将不胜感激。
使用handlebars.js作为模板引擎,我需要查询data-attribute
文件,并从此处循环显示对象中的数组文件。该流程的工作方式如下:如果,点击上的$attr = "Red";
$prodcuts = DB::table('products')->Where('tags', $tag)->get();
定义的值与对象中的字符串相匹配然后,数组循环并根据这些条件显示数据。
基本上我需要一个查询,就像我会追溯到一个数据库,(使用Laravel),例如:
json
我正在为一个非常大的Handlebars.registerHelper("ifValue", function(conditional, options) {
if (conditional !== options.hash.equals) {
return options.fn(this);
} else {
return options.inverse(this);
}
});
文件工作。例如,如果您需要参考,我会创建一个小得多的文章:
https://gist.github.com/Panoply/15dc30a9fc598d07b24f0f13a5d42df4
我知道使用 handlebars.js 我需要创建一个帮助器来创建一个带有值的字符串:
<ul>
{{#each products}}
{{#ifvalue tags equals='Blue'}}
<li>{{title}}</li>
<li>{{handle}}</li>
<li>{{tags}}</li>
{{#with images.[0]}}<li>{{src}}</li>{{/with}}
{{#with variants.[0]}}<li>{{price}}</li>{{/with}}
{{/ifvalue}}
{{/each}}
</ul>
然后我会让我的把手循环:
object array
问题是我得到一个空白的结果。您可以在http://tryhandlebarsjs.com/尝试这些代码块 - 考虑到代码位于 <a href="@(Url.Action<SchedulesController>(c=>c.Edit(schedule.Id)))" class="date">@Html.DisplayFor(m => schedule.UTCStartDate, new { @Value = schedule.UTCStartDate.ToString("dd-MMM-yyyy") })</a>
我可能会遇到一些冲突。
任何想法,再次非常感谢。
答案 0 :(得分:1)
想出来。把手很敏感。如果您偶然发现了这一点,我就是这样修理的:
车把:
{{#products}}
{{#inArray tags "Red"}}
{{title}}
{{#with images.[0]}}<img src="{{ this.src }}">{{/with}}
{{/inArray}}
{{/products}}
助手(创建一个inArray):
Handlebars.registerHelper('inArray', function(array, value, options) {
if (array.indexOf.call(array, value) >= 0) {
return options.fn(this);
} else {
return options.inverse(this);
};
});