Почему событие 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