2

我只想显示 id="firstTr-1" 的第一个 tr,但它应该从同一个对象获取数据,其他 tr 应该有除第一个之外的数据。我应该添加任何 registryhelper 还是他们的内置帮助方法!我查看了文档,但无法弄清楚。

模板:

        <script id="firsttemp" type="text/x-handlebars-template">
        <tr id="firstTr-1">

        <td class="tableFirstCol"><input type="checkbox" class="check" id="childcheck" /></td>
        <td class="tableFirstCol"><input type="checkbox" class="star" id="childstar" /></td>
        <td class="tableFirstCol"><input type="checkbox" class="alarm" id="childalarm" /></td>
        <td class="tableFirstCol">Hero Honda<span>Hero Honda</span></td>

        </tr>
        {{#each objects}}
        <tr>

        <td class="tableFirstCol"><input type="checkbox" class="check" id="childcheck" /></td>
        <td class="tableFirstCol"><input type="checkbox" class="star" id="childstar" /></td>
        <td class="tableFirstCol"><input type="checkbox" class="alarm" id="childalarm" /></td>
        <td class="tableFirstCol">{{name}}<span>{{name}}</span></td>

        </tr>{{/each}}
</script>

杰森:

var company= [

        {
        "name": "Hero Honda",
        "lastprice": 310.2,
        "dayschange": 20.1,
        "dayshigh": 220.9,
        "volume": 140.3,
        "52weekhigh": 200.3,
        "name2": "herohonda",
        "dataset": [1200,3000,3200],
        "lastprice2": "1:10pm",
        "dayschange2": "8%",
        "dayshigh2": "1.5%",
        "volume2": "1:10 Pm",
        "52weekhigh2": "1:10 Pm"
        },
        {
        "name": "Hero Honda",
        "lastprice": 310.2,
        "dayschange": 20.1,
        "dayshigh": 220.9,
        "volume": 140.3,
        "52weekhigh": 200.3,
        "name2": "herohonda",
        "dataset": [3200,3500,5000],
        "lastprice2": "1:10pm",
        "dayschange2": "8%",
        "dayshigh2": "1.5%",
        "volume2": "1:10 Pm",
        "52weekhigh2": "1:10 Pm"
        }]
4

1 回答 1

2

我认为你把事情复杂化了。Handlebars 更喜欢在 Handlebars 看到数据之前将逻辑应用到数据。因此,与其乱用可能只会在一个地方使用的自定义助手,不如更改您的数据并用布尔标志标记第一个,以便您可以{{#if _first}}在模板中进行简单的检查。

模板如下所示:

<script id="firsttemp" type="text/x-handlebars-template">
    {{#each objects}}
        <tr{{#if _first}} id="firstTr-1"{{/if}}>
            <!--...-->
        </tr>
    {{/each}}
</script>

你可以_first像这样设置标志:

company[0]._first = true;

演示:http: //jsfiddle.net/ambiguous/3Cq9K/


一旦你解决了这个问题,你手上就会遇到另一个问题:你正在复制id复选框上的属性,但id属性必须是唯一的

文档中不能有多个元素具有相同的id值。

如果您想避免各种奇怪和令人困惑的问题,您将需要在每个复选框上使用唯一id的 s。

于 2013-02-19T05:38:28.113 回答