【问题标题】:Ember Data and Northwind ODataEmber 数据和 Northwind OData
【发布时间】:2013-10-03 20:34:55
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ember.js odata ember-data


    【解决方案1】:

    编辑

    自从我写了这篇文章后,我就放弃了 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!

    原创

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

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

    这里有一个快速的 sn-p 让你开始:

    //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 路由模型实际上处理了 JayData 给出的承诺,它允许我们只传递查询。见:http://emberjs.com/guides/routing/asynchronous-routing/#toc_the-router-pauses-for-promises

    【讨论】:

    • 这真的很酷。我们还没有集成 emberjs,刚刚为 AngularJs 发布了一个,但我希望也有 EmberJS 集成!
    • @GaborDolla,确实很棒!虽然不集成也不难。
    • 一个自定义的 ember-data 适配器可能会解决这个问题,虽然我没有检查上面提到的服务的文档。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多