нокаут проверка нескольких сообщений

У меня есть следующее пользовательское правило проверки для кода ваучера, которое работает и отправляется на сервер и правильно проверяет мой код ваучера.

Однако у ваучера есть 6 различных состояний отказа: просроченный, уже погашенный, пользователь не допущен и т. д. и т. д.

Я установил сообщение о ваучере в ответе ajax, но оно не передается в сообщение проверки.

Можно ли иметь несколько сообщений для одного правила проверки и изменять сообщение в зависимости от результата?

Я ничего не нашел в документах.

this.voucherMessage = "blah blah";
this.voucherCode = ko.observable("").extend({
  validation: {
    async: true,
    validator: function(val, params, callback) {
      var voucherCode;
      voucherCode = val.replace("-", "");
      return $.ajax({
        url: constantsRoutes.vouchers.getInfo(voucherCode),
        type: 'GET',
        success: callback
      }).done(function(response, statusText, xhr) {
        var isValid;
        _this.voucherDetails.setVoucher(response);
        _this.voucherMessage = _this.voucherDetails.voucherState.display();
        isValid = _this.voucherDetails.voucherState.state() === 0;
        return callback(isValid);
      });
    },
    message: this.voucherMessage
  }

person Neil    schedule 20.06.2014    source источник
comment
Это может помочь вам (в изменении сообщения)   -  person GôTô    schedule 21.06.2014
comment
Спасибо - я нашел ответ, который добавил ниже - обратный вызов поддерживает сложный объект с isValid и message   -  person Neil    schedule 21.06.2014


Ответы (1)


Я должен был прочитать исходный код во-первых - может быть полезно для кого-то еще

callback({
  isValid: isValid,
  message: _this.voucherDetails.voucherState.display()
});

Это делает трюк!

person Neil    schedule 20.06.2014
comment
Хорошо, спасибо, что опубликовали свое решение своего вопроса, чтобы другие могли его использовать. - person GôTô; 21.06.2014