1

そのため、アプリの確立に懸命に取り組んできましたが、独自のデータ アダプターを使用してサード パーティの API を統合したいと考えています。これを最も再利用可能な方法で行いたいので、このアダプターを適切なモデルに登録しました ( coffeescript warning ):

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

User モデルに設定された 2 つの属性に基づいてルックアップを実行したいと考えています。

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'

トークンと 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 を使用して、レンダリング時にルックアップを行うと思います。

前もって感謝します!

4

0 に答える 0