【问题标题】:Use Meteor Iron Router data context in regular JS file?在常规 JS 文件中使用 Meteor Iron Router 数据上下文?
【发布时间】:2014-10-09 22:12:32
【问题描述】:

铁路由器代码:

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

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

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?
}

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

petProfile.js:

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

【问题讨论】:

    标签: javascript html meteor iron-router


    【解决方案1】:

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

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

    【讨论】:

    • 你能告诉我你是怎么知道这样做的吗?我阅读了铁路由器文档,似乎没有提到这一点。
    • 它与 Iron-router 无关,这是普通的 Meteor API:docs.meteor.com/#template_data
    【解决方案2】:

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

    所以

    this.petName
    

    【讨论】:

    • 你的意思是在 JS 文件中,在 Template.petProfile.rendered 里面,我可以只做 this.petName?
    猜你喜欢
    • 1970-01-01
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 2014-05-06
    相关资源
    最近更新 更多