假设我有一个路由文件,如:
import Ember from 'ember';
export default Ember.Route.extend({
[...]
password: "...",
[...]
});
如何在模板中使用密码属性
如果我使用{{password}}
,它不起作用,但是,如果我定义了一个具有密码属性的控制器,那么我可以在模板中使用{{password}}
,但考虑到控制器不应该再使用,我的选项是什么?
我知道我可以在路线上做这样的事情:
import Ember from 'ember';
export default Ember.Route.extend({
model(){
return {
password: "...",
}
},
});
然后访问{{model.password}}
,但我认为这不是解决问题的方法。
Route设置控制器,并负责将数据传递给控制器
您可以使用model
钩子将数据传递给控制器,如上面所示,或者与setupController挂钩类似:
setupController(model, controller) {
this._super(...arguments);
var pass = this.get('password');
controller.set('password', pass);
}
还有其他方法,比如从控制器访问路由,但这将是一个破解