我正计划创建一个 ember.js 应用程序,该应用程序很快由我的美味派 api 提供服务,我目前正试图进入 ember,但我被卡住了!
我创建的 ember 应用程序(如带有夹具数据的教程视频中)工作正常,但现在我试图从夹具切换到我的 API,这就是我的问题开始的地方:
这是我想为这个简短的测试显示的 django 模型:
class New(models.Model):
date = models.DateField("Erstellt am", auto_created=True, auto_now_add=True)
title = models.CharField("Titel", max_length=250)
content = models.TextField("Inhalt")
def __unicode__(self):
return self.title + ', ' + self.date.strftime('%d.%m.%Y')
这是我的模型资源:
class NewResource(ModelResource):
class Meta:
queryset = New.objects.all()
resource_name = 'new'
always_return_data = True
def determine_format(self, request):
return 'application/json'
这是我打开时得到的http://127.0.0.1:8000/v1/new/
:
{"meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 2}, "objects": [{"content": "Lorem Ipsum Dolorem", "date": "2013-09-27", "id": 1, "resource_uri": "/app/new/1/", "title": "Test"}, {"content": "Lorem Ipsum Dolorem", "date": "2013-09-27", "id": 2, "resource_uri": "/app/new/2/", "title": "This is a test title"}]}
这是我的 app.js 文件:
App = Ember.Application.create();
App.Router.map(function() {
this.resource('news');
});
App.store = DS.Store.create({
revision: 7,
adapter: DS.DjangoTastypieadapter.extend({
serverDomain: "http://127.0.0.1:8000",
namespace: "v1"
})
});
App.New = DS.Model.extend({
date: DS.attr('string'),
title: DS.attr('string'),
content: DS.attr('string'),
});
App.NewsRoute = Ember.Route.extend({
model: function() {
var news = App.New.find()
return news;
}
});
这是我的车把:
<script type="text/x-handlebars" id="news">
<div class="row">
<div class="col-md-2">
{{#each}}
{{#link-to 'new' this}}
{{title}} // {{date}}
{{/link-to}}
<hr>
{{/each}}
</div>
<div class="col-md-10">
{{outlet}}
</div>
</div>
正如我所说,夹具数据与我从 API 获得的 JSON 对象具有相同的形式,但是当我这样做时没有显示任何内容。(我的 index.html 中包含 ember-data-tastypie-adapter 文件)有人可以帮我吗?