我是YII2的新手,我在对象属性中添加Javascript函数时遇到很多问题,因为我真的不明白框架在后台如何工作。
更重要的是,我通过令人敬畏的2amigos扩展使用Leaflet javascript库但是我没有通过clientOptions将所有语法尝试添加到我的GeoJson类中的语法尝试。
到目前为止,徒劳地花了很多时间......
任何帮助?
这是我正在尝试的代码
$capaProvincias = new \dosamigos\leaflet\layers\GeoJson([
'data' => $geojson,
'clientOptions' => [
'style' => 'js:function(feature) {
switch (feature.properties.Cod_Prov) {
case "06": return {color => "#ff0000"};
case "18": return {color => "#ffff00"};
case "41": return {color => "#ff00ff"};
}
}',
],
]);
地图呈现完美,但没有任何互动:(
提前致谢!!
答案 0 :(得分:0)
我曾经遇到过类似的问题,这里的一位研究员建议我一个解决方案,在你的情况下会是这样的:
注意:请记住导入yii \ web \ JsExpression
'style' => new JsExpression('function(feature) {
switch (feature.properties.Cod_Prov) {
case "06": return {color => "#ff0000"};
case "18": return {color => "#ffff00"};
case "41": return {color => "#ff00ff"};
}
}',
原始答案的链接是this: