2012-10-08 5 views
0

다음 오류가 발생했습니다.녹아웃 오류가 발생했습니다.

오류 : 바인딩을 구문 분석 할 수 없습니다. 메시지 : ReferenceError : UpdateStatus가 정의되지 않았습니다. 바인딩 값 : 선택 : 상태, 비활성화 상태, 클릭 UpdateStatus

여기

를 내 자바 스크립트 코드입니다

function WebmailViewModel() { 
// Data 
var self = this; 
self.days = ['2012-10-01', '2012-10-02', '2012-10-03', '2012-10-04', '2012-10-05', '2012-10-06', '2012-10-07']; 
self.choosenDateId = ko.observable(); 
self.choosenDateGoal = ko.observable(); 
self.choosenGoalId = ko.observable(); 

self.UpdateNote = ko.computed(function() { 
    $.ajax({ 
     type: "POST", 
     url: 'SinglePageApp.aspx/UpdateNote', 
     data: "{goalId:9423}", 
     contentType: "application/json; charset=utf-8", 
     success: function (result) { 
      alert(result.d); 
     } 
    }); 
}); 

self.UpdateStatus = ko.computed(function() { 
    $.ajax({ 
     type: "POST", 
     url: 'SinglePageApp.aspx/UpdateStatus', 
     data: "{goalId: 9423}", 
     contentType: "application/json; charset=utf-8", 
     success: function (result) { 
      alert(result.d); 
     } 
    }); 
}); 

// Behaviours  
self.gotoDay = function (days) { location.hash = days }; 

// Client-side routes  
Sammy(function() { 

    this.get('#:days', function() {   
     self.choosenDateId(this.params.days); 

     debugger; 
     $.ajax({ 
      type: "POST", 
      url: 'SinglePageApp.aspx/GetGoals', 
      data: "{goalDate:'" + this.params.days + "'}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (msg) { 
       self.choosenDateGoal(msg.d); 

       alert("success"); 
      }, 
      error: function (XMLHttpRequest, textStatus, errorThrown) { 
       alert(textStatus); 
       alert(errorThrown); 
      } 
     }) 
    }); 
    this.get('', function() { this.app.runRoute('get', '#2012-10-04') }); 
}).run(); 
}; 

ko.applyBindings (새 ​​WebmailViewModel()); 사전

+2

HTML 마크 업을 추가하십시오. –

답변

0

에서

덕분에 나는 당신의 문제는 잘못된 의미에서 계산 된 관찰 가능한을 사용하고 있음을 믿습니다. 당신은 (당신이 원하는처럼 바인딩을 클릭에 결합하고 있기 때문에,) 함수는 단지 더 의미 산출 된 변수로 사용되는

self.<function Name> = function(< passed variables>){ 
    //Code to be done when this function is called. 
}; 

로 선언 호출하십시오. 따라서 계산 된 함수 만 전달 된 경우 읽기 전용 변수로 처리됩니다. 당신은 읽고 쓸 수 계산 지정할 수 있지만처럼 당신은 기능을 읽기를 제공하고 작성해야합니다

또한
self.<computed Name> = ko.computed(function(){ 
    read: function() { 
     // return how you want this computed to be displayed. 
    }, 
    write: function (value) { 
     // How do you want this to be saved. 
    }, 
}); 

, 계산 관찰 가능한이 함수 내에서 사용되는 기존의 관찰 가능한을하기위한 것입니다. 그런 식으로 계산 된 관측 값 내에서 사용되는 관측 값이 업데이트 될 때마다 계산 된 함수가 호출됩니다. 예제 및 추가 정보는 computed observable documentation을 참조하십시오.