如何从组件调用路由的动作?

时间:2017-03-25 12:54:34

标签: ember.js

我在组件中有按钮

<button type="button" class="btn btn-sm btn-default" {{action "applyDateFilter"}}>GO</button>

现在我已经在component.js中编写了这个动作applyDateFilter,就像这样

applyDateFilter() {
            var variable = this.get('dateFilter');
            this.sendAction('testAction2');
        }

现在我在main route.js文件中有另一个动作

testAction2: function(){
            alert('test');
        }

现在我想从applyDateFilter动作调用此路由动作,所以我该怎么做。我正在使用ember js版本2.10。 感谢

1 个答案:

答案 0 :(得分:1)

选项1.您需要在控制器中定义操作,并使用send方法在路由中调用操作。

testAction2(){
  this.send('testAction2Route');
}

选项2.安装ember route action helper插件。你可以直接从下面的组件中调用它,

<button type="button" class="btn btn-sm btn-default" {{route-action "applyDateFilter"}}>GO</button>

注意使用route-action而不是通常的action helper

请参阅此answer以获取经典操作和关闭操作以及路由操作相关内容