2017-11-22 5 views
0
function Action() { 
    var self = this; 
    self.name = ko.observable(); 
    self.action = ko.observable({}); 
    self.action.name = ko.observable(); 

    //This works fine 
    self.name.subscribe(function(value) { 
    // some logic 
    }); 

    // This gives subscribe not function error 
    self.action.name.subscribe(function(value) { 
    // some logic 
    }); 
} 

이 종류의 동작을 이해할 수 없습니다. 누군가가 약간의 설명으로 나를 도울 수 있습니까? 이것에은 관찰 할 수있는 객체 필드에 가입 할 때 함수 오류가 아닙니다. 구독하면

답변

1

변경 Action :

function Action() { 
    var self = this; 
    self.name = ko.observable(); 
    self.action = ko.observable({ 
    name: ko.observable() 
    }); 

    self.action().name.subscribe(function(value) { 
    alert("changed"); 
    }); 

    self.name.subscribe(function(value) { 
    // some logic 
    }); 
} 

observable의 함수이다. self.action.nameobservable 함수의 이름 일뿐입니다. 접근하려는 내 성 name 속성이 아닙니다. 그래서 action의 이름에 액세스하는 대신. 용도 : self.action().name