문제

녹아웃 JS와 매핑 플러그인을 살펴 봅니다. 객체를 통과하면 변경 사항을 구독 할 수 없다는 것을 알았습니다. 기본적으로 객체 구성원이 변경되면 알림을 받고 싶습니다. 나는 정말로 변경된 속성을 되 찾는 데 관심이 없다 (그러나 가능하다면 방법을 알고 싶다면)

function EventsKoModel(data){
    var self = this;
    self.event = ko.mapping.fromJS(data);
   //the below throws Error 
    //TypeError: self.event.subscribe is not a function
    self.event.subscribe(function(){
       console.log("something changed");
     });
}

var data = {
    'id': 14124124124124,
    'name': 'Some Event',
    'events': [{
       'id': 1
     },{
        'id': 2
      }]
}
var d = new EventsKoModel(data);
ko.applyBindings(d);

그러나 객체가있는 배열을 전달하면 객체를 Fromjs로 전달할 때 반환 된 객체에 구독 방법이 없다는 것을 알았습니다.

감사

도움이 되었습니까?

해결책

가입자가 매번 발사하기를 원한다고 가정합니다. event 처음 설정 한 시간을 포함하여 업데이트됩니다. 당신은 이것을 시도 할 수 있습니다.

function EventsKoModel(data){
    var self = this;
    self.event = ko.observable();
    self.event.subscribe(function(){
        console.log("something changed");
    });
    ko.mapping.fromJS(data, {}, self);
}

다른 팁

나는 얼마 전에 같은 요구 사항을 가지고 있었고 이것에 대해 녹아웃 원자로를 썼습니다. 계층 적 모델에 가입하는 데 좋은 일을하고 바로 이동하는 데 필요한 대부분의 기능을 제공합니다.

여기에 대한 링크는 다음과 같습니다.

https://github.com/ziadj/knockoutjs-reactor

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top