Javascript EmberJS链接到嵌套资源正在重新呈现父视图
我试图创建一个简单的界面,左边有一个链接列表,从一个AJAX调用中检索,当单击它时,在右边的{outlet}中打开一些数据,从该链接的另一个AJAX调用中检索。以下是我的路线:Javascript EmberJS链接到嵌套资源正在重新呈现父视图,javascript,jquery,ember.js,handlebars.js,Javascript,Jquery,Ember.js,Handlebars.js,我试图创建一个简单的界面,左边有一个链接列表,从一个AJAX调用中检索,当单击它时,在右边的{outlet}中打开一些数据,从该链接的另一个AJAX调用中检索。以下是我的路线: App.Router.map(function() { this.resource('about'); this.resource('subreddit', { path: 'subreddit/:subreddit_name' }, function() { this.resource('com
App.Router.map(function() {
this.resource('about');
this.resource('subreddit', { path: 'subreddit/:subreddit_name' }, function() {
this.resource('comments', { path: 'comments/:id' })
});
});
因此,我有一个动态链接列表,基于:subreddit_name,结构如下:
subreddit/:subreddit_name/comments/:id
要创建链接,我有以下代码块:
<script type="text/x-handlebars" id="subreddit">
<div>
{{#each item in model}}
{{#linkTo 'comments' item.subreddit item.id classNames="list-group-item"}}
<img class="media-object" {{bindAttr src="item.thumbnail"}} class="img-rounded">
{{item.author}}
{{/linkTo}}
{{/each}}
</div>
<div>{{outlet}}</div>
</script>
链接已正确更正,但是,在我将:subreddit_name动态路由插入路由器后,当我单击链接时,它将重新呈现整个模板,而不是仅为注释重新呈现模板:
<script type="text/x-handlebars" id="comments">
{{#each item in model}}
<div class="panel panel-info mypanel">
<div class="panel-heading">{{item.author}}</div>
<div class="panel-body">
<p>{{{item.body}}}</p>
</div>
</div>
{{/each}}
</script>
我对EmberJS仍然很了解,这就是为什么我想在out上征求一些建议/意见来纠正这个问题
提前谢谢 以下是jsbin工作示例:
我已设法使链接正常工作,但未定义的也在那里呈现:S尝试仅将模型作为链接到帮助器中的参数传递,而不是父模型和id。如下所示:{linkTo'comments'item}}在子Reddit模板中它正常工作。。几乎问题是,当我单击链接时,它会检索正确的注释,但URL是:index.html/subreddit/undefined/comments/1t0gwe,其中“undefined”应该是subreddit的名称。问题是没有人告诉SubredditRoute它将使用的模型。它是未定义的ATM,这就是为什么当它试图序列化它以更改它显示未定义的url时。我认为你应该做的是有一个路由来处理和显示所有的子Reddit,然后是一个路由来处理一个显示注释链接的子Reddit,然后是一个用于注释的子Reddit。编辑我有我的疑问。。。试着使用你的第一个链接,但是看看这个方法:edpaez,你会在答案中加入你的评论吗,他确实需要实现路线的序列化钩子。非常感谢大家!我将在序列化钩子上通知自己!请把你的评论作为一个答案,因为它是真正相关的!谢谢