observableArray (jQuery 템플릿을 사용하여 페이지의 정보를 나열하는)를 만들려고했는데 버튼 클릭 (페이지로드가 이상적 임에도 불구하고)에서 Ajax 호출을 실행하고 정렬. 여기 Ajax 호출의 성공 처리기를 통해 observableArray를 업데이트하는 방법은 무엇입니까?
내가 무엇을 가지고 있지만 그것을 작동하지 않는 경우, 에러 제공 :this.propertyDetails is undefined
HTML :
<button data-bind="click: addProperty">Add property</button>
JS :
var viewModel = {
propertyDetails: ko.observableArray([
{name: "1", type: "Unknown"},
{name: "2", type: "Unknown"},
{name: "3", type: "Unknown"},
{name: "4", type: "Unknown"}
]),
addProperty: function() {
//this.propertyDetails.push({name: "New Thing", type: "Unknown"});
$.ajax({
dataType: 'json',
data: 'count=10',
url: 'http://feeds.delicious.com/v2/json/tomleadbetter?callback=?',
success: function (data) {
$.each(data, function(i,item){
console.log(item);
this.propertyDetails.push({name: item.d , type: item.u});
});
}
});
}
};
ko.applyBindings(viewModel);
그것은 아약스를 실행을 버튼 클릭시 호출하지만 각 항목을 배열로 푸시 할 때 실패합니다.
나를 잘못 이해하지 마라. 내가 완전히 잘못했을 수 있습니다! 그러나이 선은 버튼을 눌러 어레이에 삽입합니다 :
this.propertyDetails.push({name: "New Thing", type: "Unknown"});
그래서 어떤 포인터가 좋을 것입니다.
A-HA, 나는이 할 필요 ({이름 : item.d를 입력 : item.u}); 멋지게 :). 이제 녹아웃 내에서 페이지로드시 어떻게 실행합니까? – Leads
페이지로드에서 코드 측면을 실행 하시겠습니까? 바인딩을 적용하거나 아약스 호출을 실행 하시겠습니까? – Akkuma
내가 뭘 해야할지 생각하는 URL을 (어떤 매개 변수가있을 것입니다) 다음 페이지로드에 ajax 호출을 실행하고 그 배열에 의해 피드 것입니다. – Leads