提问者:小点点

无法显示来自余烬数据的模型


我正在使用Ember. js 1.0.0 RC1和Ember数据修订版12

我在后面PHPSlim框架,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" }]}

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

感谢阅读!

解决方案

我不得不在JSON回答上加上引号

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

共2个答案

匿名用户

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

我要拿回来的模型——包括一个身份证。

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

匿名用户

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