그래서이 문제가 있습니다. knockout.js에서 Google지도 검색 예제를 만들려고합니다. 다음과 같이 내 뷰 모델은 다음과 같습니다녹아웃 : attr 값 : retrived 태그가 없습니다.
function search() {
var self = this;
self.loc = ko.observable();
self.load = function() {
$.getJSON("http://ws.geonames.org/searchJSON?q=" + $('#q').val() + "&maxRows=10",self.loc);
self.centre = function (lat,lng){
var point = new GLatLng(lat,lng);
map.setCenter(point,13);
}
}
$(document).ready(function(){
ko.applyBindings(new search());
});
function center(lat,lng){
var point = new GLatLng(lat,lng);
map.setCenter(point,13);
}
을 그리고보기는 다음과 같습니다 :
<div data-bind="with: loc">
<div data-bind="foreach: geonames">
<a data-bind="text: name, attr: { 'data-lat': 'lat', 'data.lng': 'lng', 'href': 'javascript:center(lat,lng);' }"></a>
</div>
</div>
내가 직면하고 문제는 위도와 LNG 필드가 가져온 JSON에서 검색되지 않는 것입니다. 대신 결과 HTML 소스에서와 같이 표시됩니다. 예를 들어 결과 html 소스에서 태그의 href 속성에는 lat lng의 숫자 값 대신 javascript : center (lat, lng)가 포함됩니다. 그러나 텍스트 데이터 바인딩 필드의 '이름'항목이 올바르게 표시됩니다.
키를 넣는 것이 맞습니다 : 작은 따옴표로 된 값 쌍을 제거했지만 여러 가지 잘못된 가져 오기 오류가 발생했습니다. - data-lat 특성 또는. in data.lng 또는 : in javascript : center (lat, lng); 태그. 도움이 될 것입니다.
회신이 내 질문에 해결되지 않았다하지만 해결책에 도달 도와 않았다. 내가 하이퍼 링크를 만들고 싶었 기 때문에 태그에 href 속성을 사용했습니다. 그러나 버튼을 사용하여 동일한 기능을 달성했고 효과가있었습니다! 그래서 응원 :) –