Почему событие onchange не запускается в угловых js?

Я делаю форму из json . Я использую угловую схему с зависимостью в tv4.js. Я изучаю из этого https://github.com/Textalk/angular-schema-form/blob/master/docs/index.md#global-options То, что мы можем применить onchange, пошло на элемент. Но когда я применяю его, не вызываю его и не выдает никакой ошибки, почему? Плункер http://plnkr.co/edit/wbziK5aRUg69JuwXDoVy?p=preview

onChange: function(modelValue,form) {
      console.log("Password is",modelValue);
    }

Я использовал так

"email": {
            "title": "Email",
            "type": "string",
            "minLength": 2,
            "pattern": "^\\S+@\\S+$",
            onChange: function(modelValue,form) {
      console.log("Password is"+modelValue);
          },
            validationMessage: {
              200: "Address is too short, man.",
              "default": "Just write a proper address, will you?" //Special catch all error message
            },
            "description": "Email will be used for evil.",
            required: true
          },

есть ли проблема в привязке?

2 ответа

Я посмотрел на директиву sfChanged. К несчастью...

Я не хотел тратить много времени, чтобы просто связать событие изменения. Может быть, этот инструмент не является серьезным...

Чтобы подключить логику события изменения, в вашем html-объекте формы убедитесь, что:

ng-model (add to sf-model, sf-schema, sf-form)

привязан к форме модели, пример:

ng-model="modelForm" (sf-Model="modelForm")

На вашем объекте формы HTML убедитесь, что sf-changed Атрибут существует с этим синтаксисом:

sf-changed="onChange"

В объекте схемы для ключа, с которым вы хотите связать событие изменения, напишите:

{
  key: "yourkey",
  ...blabla...waouou...
  x-schema-form: {
    onChange: function () { console.log('now it runs'); }
 }  
}

Я отладил директиву sfChanged, и теперь ваше событие изменения срабатывает.

В одиночку на объекте формы ваше событие изменения не распознается.

Опция "размытия" запускается лично, и я обнаруживаю инструмент, и я плачу "почему я?" "Почему так много ненависти?"

В документации большая дыра, хорошего дня.

Вы добавили onChange в неправильном месте. это должно быть не в схеме, а в форме. проверьте это http://plnkr.co/edit/h02XKqF3Vc6eefTOEN8m?p=preview

 $scope.form = [
        "name",
        "student",
        {
          key: "email",
          onChange: function(modelValue, form) {
            console.log("email changed");
            console.debug(modelValue);
            console.debug(form);
          }
        },
        "title",
        {
          type: "submit",
          title: "Save"
        }
      ];

Хотя для поля электронной почты событие не срабатывает, пока вы не введете действительное значение. не уверен, должно ли это работать так.

Вам также не хватает тега angular-schema-form, потому что этот вопрос относится к этой конкретной библиотеке.

BR

Другие вопросы по тегам