基本上,我有一个模板,它在ArrayController
内显示Objects
的列表。每个列出的项目都有一个按钮,应该更新该特定的属性Object
。我觉得我比现在更困难,但我似乎无法弄清楚。Ember.js单击更改对象属性的操作
这里是模板中的HTML:
<script type="text/x-handlebars">
{{view App.MainView}}
</script>
<script type="text/x-handlebars" data-template-name="item_template">
{{#view App.addButtonView}}
<div id="add_button"><span>Add Item</span></div>
{{/view}}
<div id="item_list">
{{#each App.itemsController}}
<div class="item_title">{{title}}</div>
{{#view App.updateTitleBtnView}}
<div class="title_btn">UPDATE THE TITLE</div>
{{/view}}
</div>
{{/each}}
</div>
</script>
然后我的脚本是这样的:
var App = Em.Application.create({
ready:function(){
this.itemsController.createItem();
}
});
App.Item=Em.Object.extend({
title:"An Item"
});
App.itemsController = Ember.ArrayController.create({
content: [],
createItem: function(){
var item = App.Item.create();
this.pushObject(item);
}
});
App.addButtonView = Ember.View.extend({
click: function(){
App.itemsController.createItem();
}
});
App.updateTitleBtnView = Ember.View.extend({
click: function(){
////////////////////////////////////////////////////////////////
// Change the value of the title property for a single Object //
////////////////////////////////////////////////////////////////
}
});
App.MainView = Ember.View.extend({
templateName: 'item_template'
});
什么代码,我需要在视图中包括:App.updateTitleBtnView
?我是否以正确的方式去解决这些问题?
我是Ember的新手,所以请原谅我,如果这是一个愚蠢的问题。
感谢您的答复。我如何实际更新该特定对象上的“标题”属性? – twiz
我刚刚更新了示例,您可以将对象作为第二个参数传递给动作助手,并将其作为事件的上下文属性提供。 –
对不起,我花了几天来测试这个,但无论如何代码工作很好。有一个小问题让我失望。看来'{{title}}'应该是'{{item.title}}'。 只要您做出更改,我会尽快接受您的答案。再次感谢。 – twiz