私の meteor アプリは Parse.com にアクセスして、データを取得して表示します。parse.com JavaScript クエリをテンプレートのレンダリングされた関数に直接統合することから始めましたが、これはうまく機能しました。
ここで、Parse.com クエリをヘルパーで使用して、テンプレート内にある meteor {{#each}} ループに渡したいと思います。
Template.dashboard.helpers({
app: function () {
//init new array
var appsArr = [];
//Create a Parse Query for Post objects
var query = new Parse.Query("Apps");
query.descending("createdAt");
var appsObj = {};
query.find({
success: function(results) {
// Add the returned Parse.Object values to appsArr
for (var i = 0; i < results.length; i++) {
appsObj = {};
appsObj.obid = results[i].id;
appsObj.title = results[i].attributes.title;
appsObj.screenshot1 = results[i].attributes.screenshot1._url;
appsObj.appIcon = results[i].attributes.appIcon._url;
appsArr.push(appsObj);
}
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
return appsArr
}
});
ヘルパーで配列 (appsArr) を返そうとするたびに、「テンプレート ヘルパーの例外: 未定義」というエラーが表示されます。また、解析オブジェクトをコンソールに出力することもできません。繰り返しますが、レンダリングされた関数でも同じコードが機能します。
私は Meteor.js と Blaze テンプレートにかなり慣れていません。テンプレートで {{#each}} できるように、この解析クエリをヘルパーに正しく実装するのを手伝ってください。
{{#each app}}
<h3 class="app-title">{{title}}</h3>
{{/each}}
前もって感謝します!