新入門並試圖找出最佳實踐。問題是,當我切換到日曆模板時,fullCalendar呈現兩個日曆。正在渲染EmberJS視圖兩次
這裏是控制檯輸出:
Attempting transition to calendar ember.js?body=1:3499
Transition #3: calendar: calling beforeModel hook ember.js?body=1:3499
Transition #3: calendar: calling deserialize hook ember.js?body=1:3499
Transition #3: calendar: calling afterModel hook ember.js?body=1:3499
Transition #3: Resolved all models on destination route; finalizing transition. ember.js? body=1:3499
Rendering calendar with <[email protected]:calendar::ember635> Object {fullName: "view:calendar"} ember.js?body=1:3499
Transitioned into 'calendar' ember.js?body=1:3499
Transition #3: TRANSITION COMPLETE.
這裏是我的代碼:
router.es6
var Router = Ember.Router.extend({
location: 'history'
});
Router.map(function() {
//...
this.route('calendar');
//...
});
export default Router;
路線/ calendar.es6
export default Ember.Route.extend();
組
的意見/ calendar.es6
var CalendarView = Ember.View.extend({
didInsertElement: function() {
$('#calendar').fullCalendar();
}
});
export default CalendarView;
模板/ calendar.hbs
{{#view "calendar"}}
<nav>
<h1>Schedule</h1>
</nav>
<article id="schedule">
<section>
<div id='calendar'></div>
</section>
</article>
{{/view}}
正確的想法,只是沒有把它放到路線#模式。相同的代碼可以在View#didInsertElement中。 –
@Ember Sherpa:這個位置變化的意義是什麼? – gravityplanx
更清潔的代碼?應該使用'model'鉤子返回該路線所需的模型。如果可能的話,避免掛鉤中的其他事物。 – fanta