Angular Schema Form - «обязательный», не работающие поля select и checkbox - PullRequest
0 голосов
/ 12 мая 2018

Я новичок в форме угловой схемы и у меня возникли некоторые проблемы с полями select и checkbox * Проверка 1003 *.

Под $scope.schema У меня есть поле выбора с именем designation:

"designation": {
    "title": "Designation",
    "type": "select",
    "default": undefined
}

$scope.form (объявляя designation и agreeTerms):

{
    "key": "designation",
    "type": "select",
    "title": "Designation",
    "titleMap": [
        { value: undefined, name: "Select a designation" }, // first value
        { value: "Andersson", name: "Andersson" },
        { value: "Johansson", name: "Johansson" },
        { value: "other", name: "Something else..."}
    ]
},
{
    "key": "agreeTerms",
    "type": "checkbox",
    "title": "I agree to ..."
}

И designation, и agreeTerms определены в свойстве required схемы.

Когда я отправляю форму, оба поля проходят проверку required.Я ожидаю, что пользовательский интерфейс покажет сообщения Required под / после полей.Этого не происходит.

То, что я пробовал:

  • присвойте первое значение поля выбора для '' и null и сопоставьте его со значением по умолчанию для схемы.
  • изменить тип поля select на object в схеме;это сработало и прошло необходимую проверку, но свойство не отображалось в модели

Пожалуйста, помогите:)

1 Ответ

0 голосов
/ 28 июня 2018

Вам необходимо изменить тип схемы на string, так как select не является допустимым свойством схемы type.

"designation": {
    "title": "Designation",
    "type": "string",
    "default": undefined
}

Тогда в вашем теге формы должно быть ng-submit = "submitForm (ngform, modelData)" :

<form sf-schema="schema" sf-form="form" sf-model="model" ng-submit="submitForm(ngform,modelData)" sf-options="option"></form>

Затем в вашем контроллере вы можете транслировать при подтверждении:

$scope.submitForm = function(form) {
    // First we broadcast an event so all fields validate themselves
    $scope.$broadcast('schemaFormValidate');
};
...