我有一个flyers名为模板的路线flyers.hbs
<div class="button-wrap">
<button {{action 'back'}}>Go Back</button>
{{#if isPrintable}}
<button {{action 'print'}} class="float-right">Print Flyer</button>
{{/if}}
</div>
{{outlet}}
Run Code Online (Sandbox Code Playgroud)
在这flyers条路线我有view和new.New应该只显示后退按钮,并view应显示后退按钮和打印按钮.所以在view控制器中我指定了一个属性.
import Ember from 'ember';
export default Ember.Controller.extend({
isPrintable: true,
});
Run Code Online (Sandbox Code Playgroud)
但显然flyers当我导航到view路线时,父控制器没有看到该属性,因此我的打印按钮没有显示.
这样做的正确方法是什么?
据我所知,您希望{{isPrintable}}在flyers模板中具有依赖于活动子路由的值.也许这对你有用.
//flyers controller
import Ember from 'ember';
export default Ember.Controller.extend({
isPrintable: true,
});
//child route
import Ember from 'ember';
export default Ember.Route.extend({
parentController: Ember.computed( function() {
return this.controllerFor('flyers');
}),
setupController: function(controller, model) {
this._super(controller, model);
this.get('parentController').set('isPrintable', false);
},
deactivate: function() {
this.get('parentController').set('isPrintable', true);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3109 次 |
| 最近记录: |