Kod Routera Iron:

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

To jest dość proste. Jeśli mam klawisz petName dla każdego obiektu w kolekcji Adoptees, mogę wystarczyć szablony kierowców, aby uzyskać dostęp do kontekstu danych.

Petprofile.html:

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

Ale powiedzmy, że chcę mieć kontekst danych w powiązanym pliku JavaScript:

Petprofile.js:

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

Świetnie, działa. Takie oparte na odpowiedzi Saimeunt, mogę po prostu zrobić:

Petprofile.js:

Template.petProfile.rendered = function() {
    var petName = this.data.petName;
}
3
fuzzybabybunny 16 sierpień 2014, 13:40

2 odpowiedzi

Najlepsza odpowiedź

W wywołaniu zwrotnym created / rendered / destroyed można uzyskać dostęp do kontekstu danych za pomocą this.data.field, ponieważ this jest mapowany do instancji szablonu.

W funkcjonariuszy i obsługi zdarzeń można uzyskać dostęp do niego przy użyciu this.field, ponieważ this jest mapowany bezpośrednio do kontekstu danych.

3
saimeunt 16 sierpień 2014, 09:55

Dostęp do danych można uzyskać w szablonie przy użyciu "tego"

Więc

this.petName
-3
shambles 16 sierpień 2014, 09:50