2017-08-28 136 views
-3

我将值传递给函数addPolyline(道具)内的值的值更改路径值和色彩动态如何改变一个对象是另一个对象

var lineSymbol = { 
    path: 'M 0,-1 0,1', 
    strokeOpacity: 1, 
    scale: 4,   
    strokeWeight: 2, 
}; 



function addPolyline(props){  
    flightPath = new google.maps.Polyline({ 
     path: props.flightPath, 
     geodesic: true, 
     strokeColor: props.color, 
     strokeOpacity: 0, 
     icons: [{ 
      icon: lineSymbol, 
      offset: '0', 
      repeat: '20px' 
     }] 
    }); 
} 

addPolyline({ 
    flightPath: flightPlanCoordinates, 
    color: "#f9a61e" 
}); 

但是我怎么更改不透明度它在lineSymbol中,但在addPolyline中作为图标键的一部分调用。

+0

你不能在初始化之前修改lineSymbol 'flightPath'?例如:'lineSymbol.strokeOpacity = props.newOpacity'。 –

+0

假设你可以有多个图标,你将不得不循环图标和合并/覆盖对象 – Rajesh

回答

1

你只需要使用您的props来初始化lineSymbol值来传递所需值

function addPolyline(props){ 
    lineSymbol.strokeOpacity = props.symbolOpacity; 
    flightPath = new google.maps.Polyline({ 
    ... 

,或者,如果你不希望修改全局lineSymbol

function addPolyline(props){ 
    var symbol = Object.assign({}, lineSymbol) 
    symbol.strokeOpacity = props.symbolOpacity; 
    flightPath = new google.maps.Polyline({ 
    ... 
    icons: [{ 
     icon: symbol, 

,并调用与

addPolyline({ 
    flightPath: flightPlanCoordinates, 
    color: "#f9a61e", 
    symbolOpacity: 0.8 
}); 
+0

即使现在只有颜色改变,而不是不透明 –

+0

oops小错字,固定。 –

+0

这个工作,谢谢,所以我将不得不将对象分配给外部对象,然后调用分配的对象键 –

相关问题