gpt4 book ai didi

javascript - 使用 Ember 动态添加和推送其他对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:04:31 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序中添加和推送其他对象。我在这个 jsBin 中复制了案例

为了实现这一目标,我遵循了这个 tutorial ,这正是我想要的。

我有一张发票 list ,任何发票都是由交易组成的。我可以在我想要添加和推送任何单笔交易的发票创建 route 创建新发票。

  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 example .教程可能已过时,请参阅 Ember store.push with hasMany doesn't update template? .

我像这样重构了你的添加方法:

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>

示例:http://jsbin.com/gugukewaka/1/edit

关于javascript - 使用 Ember 动态添加和推送其他对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27536005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com