我正在实施ember-leaflet,我遇到了一个问题。 我想在地图上创建一个标记和折线列表。然后我想通过交互列表来处理这些层。
因此,例如当我点击与折线项目相对应的列表项时,我想在折线图层上调用editing.enable()
。我正在使用余烬数据来渲染标记和折线btw ..
有些想法?我很贪婪,我不想要一个完整的代码,只是引导我,我应该做什么,以使其工作,并以'余烬的方式':)
谢谢
答案 0 :(得分:2)
您需要在图层中添加ID,然后才能在列表操作中使用layers.findBy('id', id)
。
<a {{action 'enablePolyline' layerId}}>{{layerName}}</a>
在列表视图控制器中创建您的操作,该控制器应使用needs
访问带有图层的控制器。从那里使用find
或findBy
来获取正确的图层并进行任何修改,例如editing.enable()
。
actions: {
enablePolyline(id) {
if (!id) {
return;
}
let layers = this.get('layers');
let layer = layers.findBy('id', id);
if (layer) {
// do what you need to do with layer..
}
}
}