fa.*_*fa. 0 if-statement backbone.js handlebars.js
我在列表模板中添加了一个组合框,并且 \xc4\xb1 想根据模型中的数据库渲染组合框,那么有什么问题吗?请帮助..
\n\n<script type="text/x-handlebars-template" id="listItemTmpl">\n<tr> \n <td>{{partNo}}</td>\n <td>\n <select name="selectCombo" id="selectCombo">\n {{#each chks}}\n <option value=\'{{myModel.id}}\' {{#if(this.id==myModel1.status)}}selected{{/if}}>{{myModel1.name}}</option>\n {{/each}}\n </select>\n </td>\n</tr>\n\n</script>\nRun Code Online (Sandbox Code Playgroud)\n\n\xc4\xb1 有两个模型;\none 是,
\n\n myModel1=Backbone.Model.extend({\n url:url,\n defaults:{\n name:"",\n status:""\n }\n });\nRun Code Online (Sandbox Code Playgroud)\n\n另一个是;
\n\nmyModel=Backbone.Model.extend({\n url:url,\n defaults:{\n\n }\n});\nRun Code Online (Sandbox Code Playgroud)\n
问题是,车把不是这样工作的。该表达式{{#if(this.id==myModel1.status)}}不是有效的车把 if 块。
Handlebars 是一个语义、声明性模板引擎。它不支持任意 JavaScript 表达式。您可以使用该块检查的唯一内容#if是某些内容是否真实(不是false、undefined、null或"")[]。
首选方法是在渲染模板之前评估条件,并使用视图模型将结果传递给模板。isSelected在您的情况下,您可以向数组中的每个对象添加一个属性chks,然后在模板中简单地使用它来评估它
{{#if isSelected}}selected{{/if}}
Run Code Online (Sandbox Code Playgroud)
有关如何使用把手的示例,请参阅handlebars.js 文档。