Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript EmberJS链接到嵌套资源正在重新呈现父视图_Javascript_Jquery_Ember.js_Handlebars.js - Fatal编程技术网

Javascript EmberJS链接到嵌套资源正在重新呈现父视图

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

我试图创建一个简单的界面,左边有一个链接列表,从一个AJAX调用中检索,当单击它时,在右边的{outlet}中打开一些数据,从该链接的另一个AJAX调用中检索。以下是我的路线:

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,你会在答案中加入你的评论吗,他确实需要实现路线的序列化钩子。非常感谢大家!我将在序列化钩子上通知自己!请把你的评论作为一个答案,因为它是真正相关的!谢谢