gpt4 book ai didi

javascript - 无法显示 ember-data 中的模型

转载 作者:行者123 更新时间:2023-11-28 09:17:35 25 4
gpt4 key购买 nike

我使用 Ember.js 1.0.0 RC1 和 ember-data 修订版 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" }]}

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

感谢阅读!

解决方案

我必须在 JSON 响应周围添加引号

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

最佳答案

看起来内容似乎永远不会在 Controller 中设置。我怀疑如果您将 setupController Hook 添加到 App.AdsRoute 中,它会将项目放入 Controller 中。

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"}]}

关于javascript - 无法显示 ember-data 中的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15449054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com