无法显示来自ember-data的模型

时间:2013-03-16 12:06:54

标签: javascript ember.js ember-data

我使用Ember.js 1.0.0 RC1和ember-data revision 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>

来自后端的回复:

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

但是商店里没有显示任何内容。我的问题是如何在我的车把模板中使用控制器中的数据?

阅读的Thx!

我不得不在JSON响应中添加引号

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

2 个答案:

答案 0 :(得分:0)

看起来好像内容永远不会在控制器中设置。 我怀疑如果你将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}}

我要回来的模型 - 包括一个id。

{"checks":[{"id":"512e0c6b1769d0805700000b","description":"xyz"}]}

答案 1 :(得分:0)

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