首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组中的Dust.js if值

数组中的Dust.js if值
EN

Stack Overflow用户
提问于 2013-10-09 20:20:57
回答 3查看 4.9K关注 0票数 2

我有一个dust.js模板文件,我向它传递两个数组:

  • 下拉多个选择的选项数组
  • 1组选定选项

如何选择dust.js下拉列表中的选项?

下面是一个示例:

我发送给模板的数据

代码语言:javascript
复制
var selectOptions = [1,2,3,4,5,6,7,8,9,10,11,12,13];
var selectedValues = [3,7,9];

模板

代码语言:javascript
复制
<select multiple>
    {#selectOptions}
        <option>{.}</option>
    {/selectOptions}
</select>

如何使用{selectedValues}来选择这些选项?

提前谢谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-28 05:58:02

另一个使dust.js模板更清晰的解决方案是将这两个列表组合成一个新的对象列表。

因此,使用前面的数据示例:

代码语言:javascript
复制
var selectOptions = [1,2,3,4,5,6,7,8,9,10,11,12,13];
var selectedValues = [3,7,9];
var options = [];
for(var i=0;i<selectOptions.length;i++){
    var item = selectOptions[i];
    // Option object containing selected value + selected info
    var option = { value : item, selected : selectedValues.indexOf(item) > -1 };
    options.push(option);
}

您的dust.js模板现在将如下所示:

代码语言:javascript
复制
<select multiple>
{#options}
    <option {?selected}selected="true"{/selected}>{value}</option>
{/options}
</select>
票数 3
EN

Stack Overflow用户

发布于 2013-10-10 07:57:40

添加另一个循环以检查所选选项

代码语言:javascript
复制
<select multiple>
    {#selectOptions}
        <option
            {#selectedValues val=.}
                {@eq key="{val}" value="{.}"}selected="true"{/eq}
            {/selectedValues}
        >{.}</option>
    {/selectOptions}
</select>

请注意,我使用来自Linkedin的尘埃助手提供平等比较。

票数 6
EN

Stack Overflow用户

发布于 2015-08-25 15:44:54

与这个具体的问题不完全相关,但可能对某人有用。您可以创建一个全局助手,它只执行以下操作:

代码语言:javascript
复制
_.extend dust.helpers,

  contains: (chunk, context, bodies, params) ->
    if _.contains params.array, params.key
      chunk = bodies.block(chunk, context)

    chunk

我使用了CoffeeScript和Underscore.js,但是很容易翻译成普通的Javascript。

用法:

代码语言:javascript
复制
// options = ["foo", "bar"]
{@contains array=options key="bar"}
  Bar is an option.
{/contains}

还有一个插件,更广泛,在助理员-额外中具有相同的功能。

更多关于如何创建全球帮手的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19281838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档