4

Ember-Data b3+ 是否可以用于针对这样的服务,http://services.odata.org/V2/Northwind/Northwind.svc。如果是这样,任何人都可以提供一个关于如何使用它来读取 OData 的示例。

例如,显示客户列表的 JSBin,其中客户列表项可以导航到单击的客户的订单

我认为这对于针对不同数据协议工作的开发人员来说是一个巨大的福音,他们想知道如何将 Ember 应用程序与 Ember-Data 连接起来。

我已经用固定装置完成了这项工作,但无法真正将它与实际的服务器数据连接起来。

4

1 回答 1

3

编辑

自从我写了这篇文章后,我就放弃了 Ember,转而使用 Angular 来开发我的 SPA 数据应用程序。这背后的主要原因是Ember Set您应该使用 Ember 来连接其所有绑定内部。

不幸的是,这与 Jaydata 或 Breeze 等大多数库不兼容。至少在您希望对实体服务进行更改/保存时不会。

Jaydata 和 Breeze 都使用 propertyChanged 属性来监控实体的更改,Ember 会阻止这些更改并出现You should use Ember Set错误。

我可能已经编写了某种适配器来克服这个问题,但实际上我没有时间,我使用一个库“Ember”来让我的生活更轻松......不要对数据服务查询等基础知识感到头疼。

所以……我真的很喜欢 Ember,但很遗憾,只要他们不增强“Ember Data”或彻底改变 Ember Set 政策,我就无法使用它!

基本上,如果您打算使用数据库(JayData、Breeze)来更新后端......

不要使用余烬!

原来的

我(很快!)看了一眼 ember-data 并没有真正感到兴奋!标准 REST 服务看起来很有希望,恕我直言,这不是 WCF 的情况。

我最终为此使用了 JayData,我必须说它与 Ember 集成得非常好。

这是一个快速的片段,可以帮助您:

//Instanciate the Ember APP
App = Ember.Application.create();

//Tell the APP to initialize but to wait before launching
App.deferReadiness();

//Setup your JayData Store
//Entities.EntityModel was generated by JaySvcUtil
App.myStore = new Entities.EntityModel({
    name: 'oData',
    oDataServiceHost: <YOUR_WCF_ENDPOINT_URL>
});

//Create your route and populate model data
App.IndexRoute = Ember.Route.extend({
    model: function () {
        //This passes the toArray() promise to the model
        return App.myStore.People.orderBy('it.Name').toArray();
    }
});

//When JayData Store is ready, Fire the App
App.myStore.onReady(function () {
      App.advanceReadiness();
});

Ember Route Model 实际上处理了 JayData 给出的承诺,它允许我们通过查询。请参阅:http ://emberjs.com/guides/routing/asynchronous-routing/#toc_the-router-pauses-for-promises

于 2013-10-12T20:04:28.990 回答