我正在设置一个测试Ember应用程序,目前看起来像这样:
App = window.App = Ember.Application.create();
App.Router.map(function() {
this.resource('subscriptions', { path: '/' }, function() {
this.route('media', { path: '/:photo_id' });
});
});
App.SubscriptionsRoute = Ember.Route.extend({
model: function() {
return App.Subscription.findAll();
}
});
App.SubscriptionsMediaRoute = Ember.ObjectController.extend({
model: function(params) {
return App.Subscription.find(params.photo_id);
},
serialize: function(model) {
return { photo_id: model.photo_id };
}
});
App.Subscription = Ember.Object.extend();
App.Subscription.reopenClass({
findAll: function(id) {
var subs = Ember.A([
App.Subscription.create({ id: 1, photo_id: 221, name: "Test 1" }),
App.Subscription.create({ id: 2, photo_id: 222, name: "Test 2" }),
App.Subscription.create({ id: 3, photo_id: 223, name: "Test 3" })
]);
return subs;
}
});
这个想法是显示一个订阅列表,每个订阅最终会链接到一些媒体(图像),以便在访问正确的路线时显示,我正在显示这样的订阅列表:
<script type="text/x-handlebars" data-template-name="subscriptions">
<div class="col-3">
<div class="list-group">
{{#each subscription in controller}}
{{#linkTo 'subscriptions.media' subscription classNames="list-group-item"}}
{{subscription.name}}
{{/linkTo}}
{{/each}}
</div>
</div>
<div class="col-9">
{{outlet}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="subscriptions/media">
Display photos here -- NOT RENDERING --
</script>
这一切看起来都很好但是由于某些原因我单击链接后我的subscriptions/media
模板没有显示在订阅渠道上,这里有一个jsbin供参考:http://jsbin.com/ubumag/3/edit
任何指针?提前谢谢。
答案 0 :(得分:0)
您的App.SubscriptionsMediaRoute
不是必需的,这是ember已自动为您的路由器地图提供的默认行为,因此请将其删除或注释掉,一切都会正常工作。
请参阅here您工作的jsbin。
希望它有所帮助。