我使用敲除綁定。我有以下代碼:當可觀察值爲空時避免錯誤
<div data-bind="with: transport()">
<textarea data-bind="text: sender().complete()"></textarea>
</div>
有時發件人是null
從而對這個綁定時發生錯誤:text: sender().complete()
如何與淘汰賽進行,以避免錯誤時,可觀察到的是空?
我使用敲除綁定。我有以下代碼:當可觀察值爲空時避免錯誤
<div data-bind="with: transport()">
<textarea data-bind="text: sender().complete()"></textarea>
</div>
有時發件人是null
從而對這個綁定時發生錯誤:text: sender().complete()
如何與淘汰賽進行,以避免錯誤時,可觀察到的是空?
最後,這裏是我做的:
當物體運輸初始化時,我創造了在傳輸發送者(=託運人實體)是否存在等一個計算了senderSignaletic該測試然後檢索從它的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;
});
<div data-bind="with: transport()">
<textarea data-bind="text: sender() ? sender().complete() : ''"></textarea>
</div>
text:sender!= null? sender()。complete():''應該是有效的。也可以將可觀察的值設爲空值,但它可以包含空值,但它本身不能爲空 – Anders
@Anders這是真的,但是當您調用sender()時,您正在訪問該值,因此sender()。complete() '是'null.complete()'。 – Tyrsius
我修復了答案。 –