Knockout.js 避免可观测值为空时出现错误

Knockout.js 避免可观测值为空时出现错误,knockout.js,Knockout.js,我使用敲除绑定。我有以下代码: <div data-bind="with: transport()"> <textarea data-bind="text: sender().complete()"></textarea> </div> 有时发送方为null,因此在此绑定上发生错误:text:sender().complete() 当observable为空时,如何继续敲除以避免错误? <div data-bind="wit

我使用敲除绑定。我有以下代码:

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

有时发送方为
null
,因此在此绑定上发生错误:
text:sender().complete()

当observable为空时,如何继续敲除以避免错误?


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

最后,我要做的是:

当对象传输初始化时,我为senderSignaletic创建了一个computed for senderSignaletic,用于测试传输上是否存在发件人(=托运人实体),然后从中检索信号:

transport.senderSignaletic = ko.computed(function () {
    return (transport.sender()) ? transport.sender().signaletic : '';
});
当object shipper初始化时,我为signaletic创建了一个computed for 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;
});

文本:发送者=无效的发件人().complete():“”应为计算机。另外,一个可观察的对象不能为空,它可以持有空值,但它自身永远不能为空null@Anders这是正确的,但是当您调用
sender()
时,您正在访问该值,因此
sender().complete()
null.complete()