如果我有一个如下路线控制器:
add_departmentController = RouteController.extend({
before: function(){
var a = this.params._id;
var b = 'abc';
}
});
如何在模板的帮助器中访问这些值
Template.add_department.helpers({
SomeProperty: function () {
//Here I need access to a or b from above
//Would also be nice to access 'this' directly eg. this.params
},
});
答案 0 :(得分:19)
使用控制器中的数据功能
add_departmentController = RouteController.extend({
template: 'departmentTemplate',
data: function(){
return {_id: this.params._id};
}
});
将数据函数的返回对象作为数据上下文“注入”到模板中。
[编辑]
模板: {{_id}}直接来自数据上下文,{{idFromHelper}}从模板帮助函数返回_id。
<template name="departmentTemplate">
{{_id}}
{{idFromHelper}}
</template>
助手:
Template.addDepartment.helpers({
idFromHelper: function() {
return this._id;
}
})
答案 1 :(得分:13)
您可以在客户端代码中使用Router
对象来访问当前控制器:
Template.addDepartment.helpers({
someHelper: function() {
var controller = Router.current();
// return the _id parameter or whatever
return controller.params._id;
}
});