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()
。