Ember路线有动作

时间:2014-08-11 09:06:13

标签: ember.js

我正在构建一个不同路由的mixin来处理保存操作。有时保存后我想做额外的事情,所以我想将saveCallback动作发送回路线。

如果定义了某个动作,是否可以询问路线?或者:我可以检索路线的所有功能,所以我可以检查自己是否定义了路线?

代码mixin

export default Ember.Mixin.create({
    actions: {
        save: {
            var self = this;

            this.get('model').save()
            .then(function(result) {
                //do stuff

                //Something like if(self.hasDefined('saveCallBack')) {
                    self.send('saveCallback')
                }
            }, function(errorReason) {
                //error handling
            });
        }
    }
}

我无法触发发送操作,因为如果未定义操作,则会引发Nothing handled the action 'saveCallback'错误。

1 个答案:

答案 0 :(得分:2)

我现在无法找到问题,但我在Github上读到了一个关于添加canSendAction(或类似的)功能的问题。现在,只需在mixin上定义相同的动作,并让它冒泡。

export default Ember.Mixin.create({
    actions: {
        save: function() {
            var self = this;

            this.get('model').save().then(function() {
                self.send('saveCallback');
            });
        },

        saveCallback: function() {
            return true;
        }
    }
});
编辑:我愚蠢。只需返回true,操作应该在层次结构中冒泡,如果存在则会被另一个操作捕获。