在我的应用程序中,我目前有一个父路由来管理我的查询参数。我有一个使用闭包操作重置这些参数的组件。当前的实现工作正常,外观如下:
// Component
import Component from '@ember/component';
export default Component.extend({
tagName: '',
actions: {
actionTest() {
this.get('onClick')()
}
}
});
<div class="text-muted" style="cursor: pointer" {{action "actionTest"}}><small>{{text}}</small></div>
// Parent Route Controller
import Controller from '@ember/controller';
export default Controller.extend({
actions: {
resetAllParams() {
this.set('param1', null)
this.set('param2', null)
}
}
});
// Template
{{reset-params-button onClick=(action "resetAllParams") text="Reset Filters" size="xs"}}
我想将组件从父路线模板移动到子路线模板。当我这样做时,我将不再具有重置参数的能力-我的理解是,无法在子路径上操纵父路径的参数。
我认为我需要在关闭动作功能方面增加一些步骤,但是我不太了解。我尝试使用Ember Route Action Helper,但这似乎不适用于此用例。
我尝试通过添加以下内容来“搞怪”该动作:
// Sub-Route Template
{{reset-params-button onClick=(action "resetAllParams") text="Reset Filters" size="xs"}}
// Sub Route Controller
import Controller from '@ember/controller';
export default Controller.extend({
resetAllParams(){}
});
但是从组件控制器中的操作中发现了'this.get is not a function'错误。
任何帮助表示赞赏
答案 0 :(得分:2)
您可以将父级的路由控制器注入子级的路由控制器。在孩子的路线控制器中:
df3=df2[df2['product'].str.contains("|".join(df.keywords))]
df3.to_csv('your_path_to_new_csv',index=False)
希望这会有所帮助。有关注入的更多信息,请参见https://guides.emberjs.com/v3.4.0/applications/dependency-injection/#toc_ad-hoc-injections