网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

微信小程序循環賦值坑

發布時間:2018-04-18 10:25 所屬欄目:小程序開發教程

作者:月下獨奏,來自原文地址

就在這里。。沒錯就是這里,傳回來的值是以jsonarray格式傳過來的。 
我需要將jsonarray進行解析獲取經緯度,ID等車輛信息,然后賦值給小程序地圖上的mark,一般我的思路時直接用個for循環給每個mark進行賦值然后再Setdata一下就ok, 
結果沒想到小程序setData()設置數組對象的某個元素的屬性時根本沒用。。。。。 
然后百度一會兒找到了方法 
///////////////////////////////////////////////// 
最近在使用微信小程序的setData時,遇到了以下問題。如下:

官網文檔在使用setData()設置數組對象的某個元素的屬性時,是這么使用的:

 

  1. Page({
  2. data: {
  3. array: [{text: 'init data'}],
  4. },
  5. changeItemInArray: function() {
  6. this.setData({
  7. 'array[0].text':'changed data'
  8. })
  9. }
  10. })

使用了 ‘array[0].text’ : ‘changed data’ 這樣的值。但在實際使用中,我們對數組的中的某個元素的設置是動態的。即 我們通常應該是‘array[‘+index+’].text’ : ‘changed data’ ,其中index應該是一個動態的數字。但顯然,這樣是無法使用在對象的key中的。

所以,我只能使用了一個變通的方法。如下:

 

  1. var param = {};
  2. var string = "array["+index+"].text;
  3. param[string] = 'changed data';
  4. that.setData(param);

/////////////////////////////////////////////////////////////////////////////  這個每個屬性都需要來一次。。。  不知道是我沒找到更好的方法還是怎樣,我的強迫癥都出來了。。  下面就是我的代碼。。。

 

  1. markers: {
  2. iconPath: "/picture/bike.png",
  3. id: 0,
  4. latitude: 23.099994,
  5. longitude: 113.324520,
  6. width: 50,
  7. height: 50
  8. }

這是markers類結構,我為了賦值寫了這么多。。

 

  1. for(var i = 0; i < res.data.length; i++){
  2. // that.data.markers[i].id=i;
  3. // mark.id=i;
  4. var param = {};
  5. var string = "markers["+i+"].id";
  6. param[string] = res.data[i].Bike_id;
  7. that.setData(param);
  8.  
  9.  
  10. var string="markers["+i+"].iconPath";
  11. param[string] ="/picture/bike.png";
  12. that.setData(param);
  13.  
  14.  
  15. var string = "markers["+i+"].latitude";
  16. param[string] = res.data[i].BIKE_latitude;
  17. that.setData(param);
  18.  
  19.  
  20.  
  21. var string = "markers["+i+"].longitude";
  22. param[string] = res.data[i].BIKE_longitude;
  23. that.setData(param);
  24.  
  25.  
  26.  
  27.  
  28. var string = "markers["+i+"].width";
  29. param[string] = 50;
  30. that.setData(param);
  31.  
  32.  
  33. var string = "markers["+i+"].height";
  34. param[string] = 50;
  35. that.setData(param);
  36. /* that.setData({
  37. markers:[{
  38. iconPath: "/picture/bike.png",
  39. id: 0,
  40. latitude: 23.099994,
  41. longitude: 113.324520,
  42. width: 50,
  43. height: 50
  44. }]
  45. })*/
  46. }
  47. // console.log(res.data[1])
  48. var markk=that.data.markers;
  49. that.setData({markers:markk})


易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/23648.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×