Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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
Ember.js 在余烬中呈现列表中的一项_Ember.js - Fatal编程技术网

Ember.js 在余烬中呈现列表中的一项

Ember.js 在余烬中呈现列表中的一项,ember.js,Ember.js,在我的Ember应用程序中,我使用一个ajax调用获得了所有餐馆的列表,该调用是从Distance联合创始人的博客文章中复制的 我设置了一个调用上面显示的findAll并将其呈现到应用程序模板中的路由 App.RestaurantsRoute = Ember.Route.extend({ model: function(params) { return(App.Restaurant.findAll(params)); }, renderTemplate: function(

在我的Ember应用程序中,我使用一个ajax调用获得了所有餐馆的列表,该调用是从Distance联合创始人的博客文章中复制的

我设置了一个调用上面显示的findAll并将其呈现到应用程序模板中的路由

App.RestaurantsRoute = Ember.Route.extend({
 model: function(params) {
    return(App.Restaurant.findAll(params));

  },

  renderTemplate: function() {

    this.render('restaurants', {into: 'application'});
  }

});
餐厅显示为如下所示的
餐厅
模板,其中包含指向每个餐厅的链接。我还包括了
餐厅
模板

<script type="text/x-handlebars" id="restaurants">

  <div class='span4'>
      {{#each item in model}}
      <li> {{#link-to 'restaurant' item}}
      {{ item.name }} 
      {{/link-to }}</li>
    {{/each}}

         </ul>
     </div>

  <div class="span4 offset4">
   {{ outlet}}
   </div>

</script>
因此,我希望当我点击餐厅列表中特定餐厅的链接时,它会将此
餐厅
模板插入
餐厅
模板中定义的
门店

还有一个餐厅模型的findItem

App.Restaurant.reopenClass({

findItem: function(){
    console.log('is this getting called? No...');
    return 'blah'
  }
但是这些console.log都没有被调用

在Ember starter视频中,当Tom Dale单击列表中的一篇博客文章时,该文章将显示在为其定义的模板中,而他只需在帖子模板中设置路线(如我所做)和{outlet}即可接收该文章


你能理解为什么在这种情况下,同样的方法不适用于我吗

当您导航到
餐厅
路线时,
项目
将是该路线的
模型

因此,在您的模板中,如果您尝试

  <script type="text/x-handlebars" id="restaurant">  
     this text is getting rendered  
  {{ model.name }}      
  </script>

正在渲染此文本
{{model.name}
你可以看到餐馆的名字

而且模型钩子也没有被调用,并且进一步的
控制台.log
s不工作,
因为

注意:带有动态段的路由只有在通过URL输入时才会调用其模型挂钩。如果路线是通过转换输入的(例如,使用“链接到把手”辅助对象时),则已提供模型上下文,并且不会执行挂钩。没有动态线段的管线将始终执行模型挂钩


希望一切都会好起来。

非常感谢。我不知道是什么问题,因为余烬没有抛出任何类型的错误消息。我想知道为什么它不告诉我模板中没有
<script type="text/x-handlebars" id="restaurant">
         this text is getting rendered
      {{ item }} //item nor item.name are getting rendered         
</script>
App.RestaurantRoute = Ember.Route.extend({
  model: function(params) {
    console.log(params);
    console.log('resto');
    return App.Restaurant.findItem(params);
  }

});
App.Restaurant.reopenClass({

findItem: function(){
    console.log('is this getting called? No...');
    return 'blah'
  }
  <script type="text/x-handlebars" id="restaurant">  
     this text is getting rendered  
  {{ model.name }}      
  </script>