Ember JS从路线调用组件功能

时间:2017-05-16 19:46:49

标签: ember.js

我有一个有地图的组件。单击此映射时,将执行空间查询并返回数据。数据通过操作传递到路径以更新模型。

此时用户可以选择任何这些行,当他们这样做时,我希望能够通知地图组件选择了哪个项目。目前,当点击操作发生时,我从{{my-grid}}获取信息。这是我被困的地方。我如何让组件{{my-mapview}}知道从路径中点击了行X?

我很贪图(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 个答案:

答案 0 :(得分:1)

只需将当前选中的项目向下传递到地图即可。像{{my-mapview currentlySelected=currentlySelected}}一样。然后只需在控制器上设置currentlySelected属性,并访问组件上的currentlySelected属性以显示您想要的任何内容。