Ember.js过渡到具有动态段的路线

时间:2014-12-22 22:30:54

标签: ember.js

我有一个索引页面,其中包含一个创建记录的操作。然后我想转换到该记录,该路线有一个动态段。我得到了它的工作,但以一种可怕的方式分配=这个。我认为有更好的方法可以做到这一点。

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'));
            })
        }
    }
});

2 个答案:

答案 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

的上下文