1

我使用淘汰赛绑定。我有以下代码:

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

有时发件人null因此在此绑定上发生错误:text: sender().complete()

当 observable 为空时,如何进行淘汰赛以避免错误?

4

2 回答 2

0
<div  data-bind="with: transport()">
    <textarea data-bind="text: sender() ? sender().complete() : ''"></textarea>
</div>
于 2013-04-02T17:01:55.073 回答
0

最后,这是我所做的:

当对象 Transport 初始化时,我为 senderSignaletic 创建了一个计算,它测试传输上是否存在发送者(=Shipper 实体),然后从中检索信号:

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;
});
于 2013-04-03T09:09:58.010 回答