2017-05-16 13 views
1

私にはマップがあるコンポーネントがあります。このマップをクリックすると、空間クエリが実行され、データが返されます。データはアクションを介してルートに渡され、モデルが更新されます。Ember JSルートからのコンポーネント関数の呼び出し

この時点で、ユーザーはこれらの行のいずれかを選択できます。選択した項目がマップコンポーネントに通知されたい場合は、その行を選択できます。現在、クリック操作が発生すると、{{my-grid}}から情報を取得します。ここで私は立ち往生しています。コンポーネント{{my-mapview}}に行Xがルートからクリックされたことを知らせるにはどうすればよいですか?

私はember(2週間)にとても慣れていますので、貧弱な設計上の問題も修正してください。

//Component (my-mapview) 
    import Ember from 'ember'; 
    export default Ember.Component.extend({ 
     mapView: null, 

     actions:{ 
      onMapviewClicked){ 
       let data = mapView.Query(); 
       this.sendAction('identified', data); 
      } 
     } 
    }); 

    //Route (application.js) 
    export default Ember.Route.extend({ 
     model: function() { 
      return {    
       identifiedData:[], 
      }; 
     }, 
     actions:{ 
      onItemsIdentified(data){ 
       let model = this.get('currentModel'); 
       Ember.set(model, 'identifiedData', data); 
      } 
     } 
    }); 


    //Template application.hbs) 
    {{my-mapview identified='onItemsIdentified'}} 
    {{my-grid}} 


    //Component (my-grid) 
    import Ember from 'ember'; 
    export default Ember.Component.extend({    
    }); 

答えて

1

現在選択されている項目をマップに転送するだけです。 {{my-mapview currentlySelected=currentlySelected}}のように。コントローラのcurrentlySelectedプロパティを設定し、コンポーネントのcurrentlySelectedプロパティにアクセスして、必要なものを表示します。

関連する問題