2

我正在使用 Castle Monorail & NVelocity View Engine。我有以下模型:

    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]);
    }
    );

选择数据绑定=“值:dto.referralReason,选项:referralReasonOptions.Options,optionsText:'DisplayName',optionsValue:'Id'">

如果 dto.referralReason(或 $dto)为空,则 sampleModel.showOtherReason 将触发一次并提醒 Id。奇怪的是,如果 $dto 不为空,则 sampleModel.showOtherReason 执行两次并弹出两个警报,第一个警报显示“1405”,这是正确的,但随后它会触发另一个“未定义”警报。如果有任何数据,有谁知道它会触发两次?谢谢。

4

1 回答 1

4

value绑定一起使用时,options绑定会尝试确保该值是有效选项。

在您的情况下,看起来 1405 不是一个有效的选择。

如果您使用的是 2.0 之前的版本,那么您的问题很可能是您需要交换值/选项绑定的顺序。2.0之前,options需要先来构建选项,然后value才能设置为有效选项

于 2012-01-25T15:51:43.683 回答