我正在创建一个简单的Ember应用程序,它需要一些Tumblr json,列出帖子,然后让你转到一个帖子详细信息视图,其中包含一个返回默认帖子视图的链接。
现在的问题是,当使用{{action}}
把手模板标签时,返回'showHome'路线的链接不起作用,'showPost'动作显示json中的最后一个帖子而不是一个指定为action标记中的上下文。
以下是我的模板:
<script type="text/x-handlebars" data-template-name="main-tmpl">
<h1>
<a {{action showHome}}>{{view.content.title}}</a>
</h1>
{{&view.content.description}}
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="post-tmpl">
{{#if view.content.is_photo }}
{{#if view.detail }}
<img {{bindAttr src="view.content.photo-url-500"}}>
{{else}}
<a {{action showPost view.content href=true}} class="thumbnail">
<img {{bindAttr src="view.content.photo-url-75"}}></a>
{{/if}}
{{/if}}
</script>
以下是我的路线:
App.Router = Ember.Router.extend({
root: Ember.Route.extend({
showHome:Ember.Route.transitionTo('index'),
showPost:Ember.Route.transitionTo('postDetail'),
loading: Em.Route.extend({
connectOutlets: function(router, context){
router.get('applicationController').connectOutlet('loading', context)
}
}),
index: Em.Route.extend({
route: '/',
deserialize:function(router, params) {
var deferred = jQuery.Deferred(),
resolve = function() { console.log("resolved"); deferred.resolve() }
/* Cut for brevity [...] */
return deferred.promise()
},
connectOutlets:function(router) {
router.get('applicationController').connectOutlet('tumbleLog')
router.get('tumbleLogController').connectOutlet('posts')
}
}),
postDetail:Em.Route.extend({
route:'/post/:id',
connectOutlets:function(router,post) {
console.log('my post is', post)
router.get('tumbleLogController').connectOutlet('postDetail', post)
}
})
})
})
答案 0 :(得分:1)
我不知道天气这可以算作答案,但就像我在评论中所说,截至今天(2012年10月25日),这可以通过替换ember-1.0-来解决预先使用ember-latest,因为1.0-pre已经知道了最新修复的错误。
此外,就像Eduard提到的那样,在开发过程中,将enableLogging
设置为路由器中的true
总是一个好主意,这样您就可以知道发生了什么。
和平