【发布时间】:2014-01-04 14:58:06
【问题描述】:
在我的应用中,用户可以输入对朋友的描述或对已经存在的描述进行投票。两种方法(createDescription 和 upvoteDescription)都保留在数据库中。 upvoteDescription 更改 DOM,但 createDescription 不会。可能是因为我在模型中传递了一个参数,但我无法解决这个问题——api 需要它。
//descriptions route
App.DescriptionsRoute = Ember.Route.extend({
...
model: function () {
var store = this.get('store'),
friend = this.modelFor('friend');
return store.find('description', {friend_id: friend.id});
}
})
//descriptions controller
App.DescriptionsController = Ember.ArrayController.extend({
...
actions: {
createDescription: function () {
var name = this.get('name'),
friend_id = this.get('controllers.friend').get('id'),
store = this.get('store'),
description = store.createRecord('description', {
name: name,
friend_id: friend_id
});
description.save();
},
upvoteDescription: function (description) {
var count = description.get('count');
description.set('count', count + 1);
description.save();
}
}
});
//descriptions template
{{input value=name action="createDescription" type="text"}}
{{#each controller}}
<div {{bind-attr data-name=name data-count=count }} {{action upvoteDescription this}}>
<div>{{name}}</div>
<span>{{count}}</span>
</div>
{{/each}}
【问题讨论】:
标签: ember.js ember-data handlebars.js