2

テンプレートにデータを渡して受信する次のコードを試しましたonCreated()が、データにアクセスできません。

deviceInfo.js:
BlazeLayout.render('layout',{main:'deviceInfo',stats:'paramstats',attr:"SOME_DATA"});

deviceInfo.html:
{{>Template.dynamic template=stats data=attr}}

paramstats.js:
Template.paramstats.onCreated( () => {
    console.log("onCreated");
    console.log("Data is:",this.data.attr);
});

しかし、私は得るTypeError: Cannot read property 'attr' of undefined。どこが間違っているのですか?

4

3 に答える 3

1

コールバックには通常の関数構文を使用する必要がありonCreatedます。アロー関数は、関数のコンテキストを外側のスコープに自動的にバインドします。これが問題の原因です。これを試して:

Template.paramstats.onCreated(function() {
    console.log("onCreated");
    console.log("Data is:",this.data.attr);
});
于 2016-11-28T13:43:38.833 に答える