我使用淘汰赛绑定。我有以下代码:
<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().complete()"></textarea>
</div>
有时发件人null
因此在此绑定上发生错误:text: sender().complete()
当 observable 为空时,如何进行淘汰赛以避免错误?
<div data-bind="with: transport()">
<textarea data-bind="text: sender() ? sender().complete() : ''"></textarea>
</div>
最后,这是我所做的:
当对象 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;
});