我正在使用Castle Monorail& NVelocity查看引擎。我有以下型号:
var sampleModel ;
jQuery(function () {
var mappings = {
'DateSent': ko.utils.dateConversionFunc()
};
sampleModel = {
dto: ko.mapping.fromJS($dto, mappings),
ReasonOtherId: $reasonOtherId,
referralReasonOptions: $reasonOptions //$reasonOptions is a Json list
};
sampleModel.showOtherReason = ko.dependentObservable(function () {
alert(this.dto.referralReason());
return this.dto.referralReason() == this.ReasonOtherId;
}, sampleModel);
ko.applyBindings(sampleModel, jQuery('#referralContainer')[0]);
}
);
select data-bind =“value:dto.referralReason,options:referralReasonOptions.Options,optionsText:'DisplayName',optionsValue:'Id'”>
如果dto.referralReason(或$ dto)为空,则sampleModel.showOtherReason将触发一次并警告Id。奇怪的是,如果$ dto不为空,则sampleModel.showOtherReason执行两次并且两个警报弹出,第一个警报显示'1405',这是正确的,但随后它会触发另一个“未定义”的警报。有没有人知道如果有任何数据它会发射两次?感谢。
答案 0 :(得分:4)
value
绑定与options
绑定一起使用时会尝试确保该值是有效选项。
在您的情况下,看起来1405不是一个有效的选择。
如果您使用的是2.0之前的版本,则您的问题可能是您需要交换值/选项绑定的顺序。在2.0之前,options
需要先构建选项,然后value
可以将其设置为有效选项