我正在尝试在应用程序中添加并推送其他对象。我已经在这个jsBin中复制了这个案例
为了实现这一目标,我已经按照本教程进行了操作,该教程正是我想要的。
我有一张发票清单,任何发票都是由交易组成的。我可以在要创建并推入任何单个交易的发票创建路径中创建新发票。
actions: {
add: function() {
var newTransaction = Ember.Object.create({
name: "New Transaction",
quantity: null,
selectedFare: null,
isDone: false
});
return this.get("content").pushObject(newTransaction);
}
在我的模板中,它是这样的
<tr>
{{#each controller}}
<td>{{name}} {{input type=checkbox value=isDone checked=isDone}} {{input valueBinding=quantity}} {{view Em.Select prompt="test" contentBinding="controllers.fare.content" optionLabelPath="content.name" optionValuePath="content.id" selectionBinding="controllers.fare.selectedFare" }}</td>
{{/each}}
</tr>
不幸的是,我在控制台中看不到错误。我不知道怎么了。
如果从模板中删除{{#each controller}}{{/each}}
,则可以看到一个事务。
我的代码有什么问题?
我进行了一些更改,但是需要改进,请随时提出其他问题以进行改进。另请参见emberjs指南todo示例。教程可能已过时,请参见使用hasMany的Ember store.push不更新模板吗?。
我重构了您的add方法,如下所示:
add: function() {
var transactionRecord = this.store.createRecord('transaction', {
name: 'new transaction'
});
return this.get("model.transactions").addObject(transactionRecord);
}
循环交易的模板是这样的:
{{#each model.transactions}}
最后,我添加了invoices/index
模板,以便您在单击发票时可以看到发票及其交易:
<script type="text/x-handlebars" data-template-name="invoice/index">
<p> Invoice Index Route</p>
<p> {{title}} </p>
<p> Transactions: </p>
{{#each transactions}}
<ul>
<li> name: {{name}} </li>
<li> quantity: {{quantity}} </li>
</ul>
{{/each}}
</script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句