我有一个索引页面,其中包含一个创建记录的操作。然后我想转换到该记录,该路线有一个动态段。我得到了它的工作,但以一种可怕的方式分配=这个。我认为有更好的方法可以做到这一点。
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
submitHandle: function() {
var newCard = this.store.createRecord('card', {
handle: this.get('handle')
}),
that = this;
newCard.save().then(function(savedCard) {
that.transitionToRoute('card.build', savedCard.get('id'));
})
}
}
});
答案 0 :(得分:0)
我已经被告知,在讨论之后的大多数情况下,处理路线上的行动会更好:http://discuss.emberjs.com/t/where-should-i-define-a-save-action/5062/8
感谢我在索引路线上提出的评论:
import Ember from 'ember';
export default Ember.Route.extend({
actions: {
submitHandle: function(handle) {
var newCard = this.store.createRecord('card', {
handle: handle
});
newCard.save()
this.transitionTo('card.build', newCard);
}
}
});
答案 1 :(得分:0)
首先,我认为that
并非如此,如果处理得当,意味着使用var that
that
的{{1}} insteand使that
的范围变为功能级别,that
使范围达到窗口级别(错误),而this
是一个复杂对象,that
将成为指向this
的指针。
然后你可以使用javascript bind
设置"这个"函数https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind