0
我有這個問題,即rendered
函數被調用,而元素還沒有在DOM中。讓我描述一下我的情況。模板看起來是這樣的:流星:wainOn(鐵路線)不工作
<template name="barfoo">
<ol>
{{#each bars}}
<li item>{{title}}</li>
{{/each}}
</ol>
</template>
而下面的javascript代碼
Template.barfoo.bars = function() {
return Bars.find({});
};
Tempalate.barfoo.rendered = function() {
var bars = Bars.find({}).fetch();
var list = $('[items]');
};
當rendered
函數被調用bars == list == []
。 因此,要解決這個問題,我實現Iron routes這樣
Bars = new Meteor.Collection('bars');
// Routes
Router.configure({
layout: 'layout',
loadingTemplate: 'loading',
notFoundTemplate: 'notFound'
});
Router.map(function() {
this.route('/', {
controller: 'BarsController',
});
});
if (Meteor.isClient) {
App = {
subs: {
bars: Meteor.subscribe('bars'),
...
}
};
MainController = RouteController.extend({
template: 'barfoo',
before: function() { ... },
waitOn: function() {
return [App.subs.bars];
}
});
}
if (Meteor.isServer) {
Meteor.startup(function() {
Meteor.publish('bars', function() {
return Bars.find({});
});
}
所有的基礎知識,但是當我現在就去爲localhost:3000我仍然在rendered
功能空列表獲取。任何建議有什麼問題在這裏?
我需要深入瞭解這一點,但你是對的。我無法複製 - 直接通過'onBeforeAction'進入我的項目(遇到lookupHook錯誤或某事),但我確實添加了[action](https://github.com/EventedMind/iron-router)方法我的控制器做到了!日Thnx! –