Javascript Ember.js-是否可以在一个模板中使用{action}来影响另一个模板中的{{bind attr}}
是否可以在一个模板中使用{action}来影响另一个模板中的{{bind attr}} 目标是在1个模板中获取操作,以更改另一个模板中的绑定属性。两者都有不同的控制器 例如: 模板1:Javascript Ember.js-是否可以在一个模板中使用{action}来影响另一个模板中的{{bind attr}},javascript,model-view-controller,ember.js,Javascript,Model View Controller,Ember.js,是否可以在一个模板中使用{action}来影响另一个模板中的{{bind attr}} 目标是在1个模板中获取操作,以更改另一个模板中的绑定属性。两者都有不同的控制器 例如: 模板1: <script type="text/x-handlebars" data-template-name="diary"> <header class="dashboard-component-header" {{ action expand }}></header> &
<script type="text/x-handlebars" data-template-name="diary">
<header class="dashboard-component-header" {{ action expand }}></header>
</script>
我认为您可以使用“需要”钩子访问第一个控制器中的第二个控制器
然后在一个操作上,使用第二个控制器的对象设置使用bind attr绑定的属性
差不多
App.DiaryController = Ember.Controller.extend({
needs: "diarySection",
actions: {
expand: function () {
controllers.diarySection.set('state', false);
}
}
});
其中“diarySection”对应于模板2的控制器App.DiarySectionController
您可以使用controllers.diarySection访问第二个控制器的实例。模板/控制器2是否只有一个实例?一种简单的方法是在应用程序范围中定义“状态”。比如App.state=false;在您的控制器中,您基本上可以切换App.state。
App.DiaryController = Ember.Controller.extend({
actions: {
expand: function () {
this.toggleProperty('state');
}
}
});
App.DiaryController = Ember.Controller.extend({
needs: "diarySection",
actions: {
expand: function () {
controllers.diarySection.set('state', false);
}
}
});