在Ember.js中使用多个数据源

时间:2013-06-06 05:57:23

标签: model-view-controller ember.js ember-data

所以我一直在努力建立一个应用程序,现在我想使用它自己的数据适配器集成第三方API。我想以最可重复使用的方式进行此操作,因此我已使用正确的模型注册此适配器( coffeescript警告):

App.Store.registerAdapter 'App.Workauth', DS.GUTSAdapter.extend

然而,事情变得棘手:我想根据User模型上设置的两个属性进行查找:

App.User = DS.Model.extend
  workauths: DS.hasMany 'App.Workauth'
  token: DS.attr 'string'
  ldap: DS.attr 'string'

App.Workauth = DS.Model.extend
  worker: DS.belongsTo 'App.User'

使用token和ldap,我们可以发出API请求,而Workauths的适配器看起来像这样:

DS.GUTSAdapter = DS.Adapter.extend Ember.Evented,

  findWorkauths: (user, name, process) ->
    token = worker.token
    ldap = "#{ user.ldap }"
    $.getJSON url, \
          ldap_username: ldap, \
          ldap_auth_token: token, \
      (data, status, jqxhr)->
        workauths=( \
          gutsId:workauth.work_auth_id, \
          name:workauth.work_auth_name, \
          hours:workauth.work_auth_hours, \
          due:workauth.work_auth_due_date \
          for workauth in data).unique gutsId
        process(workauths).load()

如果存在这些绑定,那么它不应该像在我的模板中为User.Workauths {{render'workauths / index'}}创建一个插座一样简单吗?理想情况下,我认为它会在渲染时使用父视图中的用户令牌和ldap进行查找。

提前致谢!

0 个答案:

没有答案