난 그냥, 녹아웃에 새로 온 사람과 나는 쇼핑 카트 편집기가이 모든에서 오른쪽 또는하지만들기 녹아웃 가입자 끄고 다시
을하고있어 알고하지 않는 전원을 켭니다 더 진보 된 제품 선택기을 갖고 싶다는 사실을 제외하고는 녹아웃 라이브 예제와 비슷합니다. 내 제품은 실제로 두 코드 종류 중 하나를 입력하고 자신의 장바구니에 제품의 전체 세부 정보를 얻을 수 있어야합니다 코드 종류. 그래서 각 종류의 코드에 대해 두 개의 입력을 가지게 될 것이고 사용자가 그 중 하나에 코드를 입력하면 ajax 호출을 작성하고 productId, productName, the_other_code 등의 제품 정보를로드해야합니다. 아약스 전화를하고, 서버에서 데이터를받은 후 모델의 데이터를 설정하지만 재귀 이벤트 (구독) 발사의 종류를 만들고, 따라서 반복 아약스 메소드를 호출 -
I'v은 모두 & CODE2를 코드 1에 가입하여이에 시도 .메서드 중에 knockout 가입을 OFF로 설정할 수 있으면 재귀 동작이 발생하지 않는다고 생각합니다.
function Product(data)
{
var self = this;
self.ProductId = ko.observable();
self.Code1 = ko.observable();
self.Code2 = ko.observable();
self.Title = ko.observable();
self.SetData = function (itemdata) {
self.ProductId (itemdata ? itemdata.ProductId : null);
self.Code1(itemdata ? itemdata.Code1 : null);
self.Code2(itemdata ? itemdata.Code2 : null);
self.Title(itemdata ? itemdata.Title : null);
};
self.SetData(data);
self.Code1.subscribe(function (value)
{
var productInfo = Ajax_GetPartDataWithCode1(value);
self.SetData(productInfo);
});
self.Code2.subscribe(function (value) {
var productInfo = Ajax_GetPartDataWithCode2(value);
self.SetData(productInfo);
});
}
어떤 도움이 크게 도움이 될 것입니다!
는 간단한 부울 플래그를 사용하여 시도 유무 : 다음 콜백 바로 플래그가 설정되어있는 경우 반환 가입에 종료 할 때
SetData
들어가면 false로 true로 설정? 'SetData'를 입력 할 때 true로 설정하고 종료 할 때 false로 설정하면 구독 콜백에서 즉시 플래그가 설정되면 – antishok으로 설정하면 답변이되어야한다고 생각합니다. 그게 내가 어떻게하는지, 비록 여기에 설명 된대로 당신이 그것을 추가 할 때 그것에 대한 참조를 저장하면 구독 처리기를 제거 할 수 있습니다 : http://stackoverflow.com/questions/10653030/how-to-unsubscribe-the-s subscribed -function-in-knockout –
@antishok 대단히 감사합니다. 나는'ko'에 대한 해결책을 찾는 것에 너무 빠져서 더 간단한 해결책을 잊어 버렸습니다. 당신의 대답을 대답으로 바꾸십시오. – sos00