2013-04-02 1 views
1

녹아웃 바인딩을 사용합니다. text: sender().complete()관찰 가능 항목이 null 일 때 오류 방지

어떻게 관찰이 null 인 경우 오류를 방지하기 위해 녹아웃으로 진행 :

<div data-bind="with: transport()"> 
    <textarea data-bind="text: sender().complete()"></textarea> 
</div> 

때때로 보낸 따라서 오류가이 바인딩에 발생 null이다 : 나는 다음과 같은 코드가?

개체 전송이 초기화 될 때, I는 상기 전송에 대한 송신기 (= 배송 엔티티)의 실존하는 계산 senderSignaletic 대한 어떤 테스트를 작성

후 검색 마지막으로

답변

0

여기 내가 무엇 는 IT에서 signaletic :

transport.senderSignaletic = ko.computed(function() { 
    return (transport.sender()) ? transport.sender().signaletic : ''; 
}); 

그리고 객체 화주가 초기화 될 때, 나는 이름, 거리, 숫자, 도시의 연결입니다 signaletic에 대한 계산을 만들어 ... :

shipper.signaletic = ko.computed(function() { 
    var name = shipper.name(); 
    var street = shipper.street(); 
    var number = shipper.number(); 
    var postcode = shipper.postCode(); 
    var city = shipper.city(); 

    var country = shipper.country().name(); 
    return name + '\n' + street + ' ' + number + '\n' + postcode + ' ' + city + ' ' + country; 
}); 
0
<div data-bind="with: transport()"> 
    <textarea data-bind="text: sender() ? sender().complete() : ''"></textarea> 
</div> 
+1

텍스트 : sender! = null? sender(). complete() : ''를 계산해야합니다. 또한 관측 할 수없는 null은 null 값을 가질 수 있지만 self는 null이 될 수 없습니다. – Anders

+0

@Anders Thats true이지만,'sender()'를 호출하면 값에 액세스하므로'sender(). complete() 'null.complete()'입니다. – Tyrsius

+0

답변을 수정했습니다. –

관련 문제