在常规JS文件中使用Meteor Iron Router数据上下文

Use Meteor Iron Router data context in regular JS file?

本文关键字:Iron Meteor Router 数据 上下文 常规 JS 文件      更新时间:2023-09-26

铁路由器代码:

this.route('petProfile', {
    path: '/pets/:_id',
    data: function(){
        return Adoptees.findOne(this.params._id);
    }
});

这很简单。如果我对Adoptees集合中的每个对象都有一个petName键,我就可以使用handlebars模板来访问数据上下文。

petProfile.html:

<template name="petProfile">
    <h1>{{petName}}</h1>
</template>

但是假设我想在关联的javascript文件中拥有数据上下文:

petProfile.js:

Template.petProfile.rendered = function() {
    var petName = //How do I get the pet name from the data context in Iron Router?
}

很好,它有效。所以根据saimunt的答案,我可以这样做:

petProfile.js:

Template.petProfile.rendered = function() {
    var petName = this.data.petName;
}

created / rendered / destroyed回调中,您可以使用this.data.field访问数据上下文,因为this映射到模板实例。

在帮助程序和事件处理程序中,您可以使用this.field访问它,因为this直接映射到数据上下文。

可以使用'this'在模板中访问数据

this.petName