我有以下 js,基于 emberjs.com 路由教程。var 'wontAppear' 不会映射到相应的视图中。
Quiz = Em.Application.create({
ApplicationView: Ember.View.extend({
templateName: 'App'
}),
IntroSettings : Ember.Object.extend(),
ApplicationController: Ember.Controller.extend({
titlebar: 'My New App',
}),
IntroView: Ember.View.extend({
templateName: 'Intro'
}),
IntroController: Em.ObjectController.extend({ house: "2" }),
CountDownView: Ember.View.extend({
templateName: 'CountDown',
didInsertElement: function () {
this.$().hide().show('drop', { direction: "right" }, 200);
},
}),
CountDownController: Em.ObjectController.extend({
}),
Router: Em.Router.extend({
enableLogging: true,
root: Ember.Route.extend({
index: Ember.Route.extend({
route: '/',
connectOutlets: function (router, context) {
router.get('applicationController').connectOutlet('body','Intro');
},
countDown: Ember.Route.transitionTo('countDown')
}),
countDown: Ember.Route.extend({
connectOutlets: function (router, context) {
router.get('applicationController').connectOutlet('body', 'CountDown', { wontAppear: "5" });
}
})
})
})
});
Quiz.initialize();
视图是这样设置的:
<script type="text/x-handlebars" data-template-name="App">
<div id="quiz-container">
<div id="headerPanel">
<div class="title">{{titlebar}}</div>
<div class="timerDiv"> </div>
<div class="timerDivText"></div>
</div>
{{outlet body}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="Intro">
<div id="introPanel">
<img id="helpimg" src="images/helpimage.jpg" />
<button id="startButton" {{action "countDown" on="click"}}>Start Game</button>
</div>
</script>
<script type="text/x-handlebars" data-template-name="CountDown">
<div class="countdown">
{{wontAppear}}
</div>
</script>
我可以让数据出现在视图中的唯一方法是将其添加到应用程序控制器。我认为倒计时视图会从它对应的 countdownController 中获取数据?