Javascript can';t显示来自余烬数据的模型

Javascript can';t显示来自余烬数据的模型,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,我是usng Ember.js 1.0.0 RC1和Ember数据修订版12 我在后面有PHP Slim框架,并将Ember.js作为UI。我想从REST后端加载数据并将其列在模板中 这是我的代码: window.App = Ember.Application.create(); // Store App.Store = DS.Store.extend({ revision: 12, }); // Adaper DS.RESTAdapter.reopen({ url: '/sl

我是usng Ember.js 1.0.0 RC1和Ember数据修订版12

我在后面有PHP Slim框架,并将Ember.js作为UI。我想从REST后端加载数据并将其列在模板中

这是我的代码:

 window.App = Ember.Application.create();

// Store
App.Store = DS.Store.extend({
    revision: 12,
});

// Adaper
DS.RESTAdapter.reopen({
  url: '/slim'
});

// Router
App.Router = Ember.Router.extend();
App.Router.map(function(){
    this.route('ads', {path: '/ads'});
});

// Ad model
App.Ad = DS.Model.extend({
    title: DS.attr('string')
});

// AdsRoute
App.AdsRoute = Ember.Route.extend({
    model: function(){
        return App.Ad.find();
    }
});
现在,我尝试从模板中的存储中渲染模型:

<script type="text/x-handlebars" data-template-name="ads">
<h1>Ads</h1>
{{#each controller}}
    {{title}}
{{/each}}
</script>
但商店里什么也没有展示。我的问题是如何在我的把手模板中使用来自控制器的数据

谢谢阅读

解决方案

我不得不在JSON响应周围加上引号

{"ads":[{ "title":"Title" },{ "title":"other title" }]}

看起来好像控制器中从未设置过内容。 我怀疑如果将setupController挂钩添加到App.AdsRoute,它会将项目放入控制器中

setupController: (controller, model) ->
        controller.set('content', model)
我包含了我当前使用的第11版应用程序的实际工作代码。因此,模型名称不会对齐,但代码正在工作

App.ChecksIndexController = Ember.ArrayController.extend
  content: []

App.ChecksIndexRoute = Ember.Route.extend
  enter: ->
    console?.log("Checks Index Route a")
  model: ->
    App.Check.find()
  setupController: (controller, model) ->
    @._super()
    console?.log('route setupController')
    console?.log(model)
    controller.set('content', model)


{{#each item in controller }}
        {{#linkTo checks.show item }}
          <div class="well well-small well-trim-border">
            <h4>{{item.description}}</h5>
          </div>
        {{/linkTo}}
      {{/each}}

要尝试的一件事是在模板中输出一个小写的“title”,因为您的模型将属性定义为以小写的“t”开头。

感谢@nrion的快速回答。根据文档,setupController自动将“内容”设置为模型,除非被覆盖。尽管如此,我还是像你说的那样修改了代码。非常意外的是,它不起作用:(我很确定这是由于第12版。RC1对第11版没问题,但第12版不起作用!是否有关于余烬数据的文档?API或其他什么?如果调用controller.set('content',App.Ad.find())会发生什么直接在setupController挂钩中?我知道这不是您希望在生产中使用的方式,但要解决问题?我还没有尝试使用第12版,因此这可能是问题的一部分。再次感谢您的时间,nrion。我这样做时没有任何变化。当我尝试打印内容时,我得到:“。和App.Ad.find()。get('length')为0。但这可能是因为其异步且尚未填充。我将尝试在isLoadedAlso上执行此操作。您可能希望创建一个
App.AdsController=Em.ArrayController.extend
with
content:[]
属性集。现在我很确定我的商店是空的。不知道为什么,tho。如果您能给我发送修订版11,我将不胜感激!谢谢您的回答Michal。我承认我的模板不够清晰。我只想打印我收藏中每个项目的任何内容。我编辑了代码来表达我的目标。这是一个棘手的错误因为控制台中没有错误消息。非常感谢。在JSON周围添加引号解决了这个问题!
App.ChecksIndexController = Ember.ArrayController.extend
  content: []

App.ChecksIndexRoute = Ember.Route.extend
  enter: ->
    console?.log("Checks Index Route a")
  model: ->
    App.Check.find()
  setupController: (controller, model) ->
    @._super()
    console?.log('route setupController')
    console?.log(model)
    controller.set('content', model)


{{#each item in controller }}
        {{#linkTo checks.show item }}
          <div class="well well-small well-trim-border">
            <h4>{{item.description}}</h5>
          </div>
        {{/linkTo}}
      {{/each}}
{"checks":[{"id":"512e0c6b1769d0805700000b","description":"xyz"}]}