2016-08-10 8 views
0

フォーム上にドロップダウンセットアップがありますが、ルートにデータがない場合はどうすれば設定できますか?私は、新しいディーラー様式で地域の一覧を読み込もうとしています。 ember-power-select add onを追加しましたが、データをadd onにロードして使用可能なオプションを表示する方法を理解できません。サービスやコントローラを作成する必要がありますか?ルートにないデータをロードしていますか?

基本的なことを試してみるだけです。

Router.map(function() { 
    this.route('login'); 
    this.route('admin', function() { 
    this.route('territory', function() { 
     this.route('new'); 
     this.route('edit', { path: '/:territory_id/edit'}); 
     this.route('view', { path: '/:territory_id/view'}); 
    }); 
    this.route('dealer', function() { 
     this.route('view', { path: '/:dealer_id/view'}); 
     this.route('new'); 
    }); 
    }); 
}); 

これは私が新しいアイテムを作成する際に使用しているフォームです。

<div class="well"> 
    <form class="form-horizontal"> 
     <fieldset> 
      <legend>New Dealer</legend> 
      <div class="form-group"> 
      <label for="inputFirstName" class="col-lg-2 control-label">Name</label> 
      <div class="col-lg-4"> 
       {{input type="text" value=model.dealerName class="form-control" placeholder="Dealer Name"}} 
      </div> 
      </div> 
      <div class="form-group"> 
      <label for="inputFirstName" class="col-lg-2 control-label">Territory</label> 
      <div class="col-lg-4"> 
       {{#power-select selected=dealer options=dealer onchange=(action "chooseDestination") as |dealer|}} 
        {{dealer.dealerName}} 
       {{/power-select}} 
      </div> 
      </div> 
      <div class="form-group"> 
      <div class="col-lg-10 col-lg-offset-2"> 
       {{#link-to 'admin.dealer' class="btn btn-default"}}Cancel{{/link-to}} 
       <button type="submit" class="btn btn-primary" {{action 'saveDealer' model}}>Submit</button> 
      </div> 
      </div> 
     </fieldset> 
    </form> 
</div> 
+0

へのアクセスを持っているでしょうあなたはサービスやコントローラを必要といけない、あなたはルート自体を使用することができます。新しいルートモデルフックEmber.RSVP.hashを使用することができます。あなたが助けを必要とするなら、私はあなたのためのサンプルを書くことができます。 – kumkanillam

答えて

1

ルートは領土のためnewアクションやディーラーのためviewアクションであるという理由だけで、あなたがそこに他のデータをロードすることができないという意味ではありません。

たとえば、territory/viewルートでは、すべてのディーラーを読み込むことができます。

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model(params) { 
    return Ember.RSVP.hash({ 
     territory: this.store.find('territory', params.territory_id), 
     dealers: this.store.findAll('dealer') 
    }) 
    } 
}); 

は、その後、あなたのコントローラとテンプレートで、あなたはmodel.territorymodel.dealers

関連する問題