위 챗 애플 릿 setData 사용 방법 및 자주 사용 되 는 오류 해결 방법
최근 위 챗 애플 릿 을 만 드 는 것 은 공유 자전거 로 연습 하 는 것 과 유사 하 다.기본 원 리 는 애플 릿 이 서버 에 경 위 를 보 내 고 서버 가 데이터베이스 에서 경위도 근처 의 자전 거 를 검색 해 애플 릿 에 전달 하 는 것 이다.
여기 있 습 니 다.맞습니다.바로 여기 입 니 다.전 달 된 값 은 jsonarray 형식 으로 전 달 됩 니 다.
jsonarray 를 분석 하여 경위도,ID 등 차량 정 보 를 얻 은 다음 에 애플 릿 지도 에 있 는 mark 에 값 을 부여 해 야 합 니 다.보통 제 생각 은 하나의 for 순환 으로 모든 mark 에 값 을 부여 한 다음 에 Setdata 를 설정 하면 ok 입 니 다.
결국 애플 릿 setData()가 배열 대상 의 특정한 요소 의 속성 을 설정 할 때 전혀 소 용이 없 을 거 라 고 생각 하지 못 했 습 니 다...
그리고 바 이 두 는 잠시 후에 방법 을 찾 았 습 니 다. https://www.jb51.net/article/111691.htm
최근 위 챗 애플 릿 의 setData 를 사용 하 던 중 다음 과 같은 문제 가 발생 했다.다음 과 같다.
홈 페이지 문 서 는 setData()를 사용 하여 배열 대상 의 특정한 요소 의 속성 을 설정 할 때 이렇게 사용 합 니 다.
Page({
data: {
array: [{text: 'init data'}],
},
changeItemInArray: function() {
this.setData({
'array[0].text':'changed data'
})
}
})
'array[0].text':'changed data'와 같은 값 을 사 용 했 습 니 다.그러나 실제 사용 에서 우 리 는 배열 의 특정한 요소 에 대한 설정 이 동적 입 니 다.즉,우 리 는 보통'array['+index+'].text':'changed data'이 어야 한다.그 중에서 index 는 동태 적 인 숫자 일 것 이다.그러나 이것 은 대상 의 키 에 사용 할 수 없 는 것 이 분명 하 다.그래서 나 는 변 칙 적 인 방법 을 사용 할 수 밖 에 없 었 다.다음 과 같다.
var param = {};
var string = "array["+index+"].text;
param[string] = 'changed data';
that.setData(param);
이 속성 마다 한 번 씩...내 가 더 좋 은 방법 을 찾 지 못 했 는 지 어 땠 는 지 나의 강박 증 이 모두 나 왔 다.
다음은 제 코드 입 니 다.
markers: {
iconPath: "/picture/bike.png",
id: 0,
latitude: 23.099994,
longitude: 113.324520,
width: 50,
height: 50
}
이것 은 markers 류 구조 입 니 다.저 는 할당 을 위해 이렇게 많이 썼 습 니 다.
for(var i = 0; i < res.data.length; i++){
// that.data.markers[i].id=i;
// mark.id=i;
var param = {};
var string = "markers["+i+"].id";
param[string] = res.data[i].Bike_id;
that.setData(param);
var string="markers["+i+"].iconPath";
param[string] ="/picture/bike.png";
that.setData(param);
var string = "markers["+i+"].latitude";
param[string] = res.data[i].BIKE_latitude;
that.setData(param);
var string = "markers["+i+"].longitude";
param[string] = res.data[i].BIKE_longitude;
that.setData(param);
var string = "markers["+i+"].width";
param[string] = 50;
that.setData(param);
var string = "markers["+i+"].height";
param[string] = 50;
that.setData(param);
/* that.setData({
markers:[{
iconPath: "/picture/bike.png",
id: 0,
latitude: 23.099994,
longitude: 113.324520,
width: 50,
height: 50
}]
})*/
}
// console.log(res.data[1])
var markk=that.data.markers;
that.setData({markers:markk})
마지막 으로 setData 를 해 야 합 니 다.그렇지 않 으 면 지도 가 새로 고침 되 지 않 습 니 다.QT 가 순식간에 잘 되면 정말 귀 찮 습 니 다.........................................................
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
OpenSSL 생 성 ssl 인증서텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.