Я знаю, что этот вопрос задавался много раз, но ни один из ответов / ресурсов не смог мне помочь.
Я пытаюсь создать простую угловую форму, которая будет принимать число и отображать сообщение, если оно отрицательное:
<div layout-padding ng-controller="BaseController as vm">
<form name="vm.mechanicalForm">
<input type="number" min="0" name="test" ng-model="vm.building.numberOfChillers" required />
<div ng-messages="vm.mechanicalForm.number.$error">
<div ng-message="min">
Test worked
</div>
</div>
<input type="button" ng-click="vm.save()" value="Save" />
</form>
Кроме того, когда я сохраняюформа, я хочу, чтобы контроллер записывал одно сообщение, если форма верна, и другое, если оно недействительно:
var app = angular.module('plunker', ['ngMessages']);
export class BaseController {
public mechanicalForm;
public building;
constructor() {
this.mechanicalForm = {};
this.building = {
'numberOfChillers': 0
};
}
public save() {
if (this.mechanicalForm.$valid) {
console.log("This worked");
}
else {
console.log("This did not work");
}
}
}
app.controller('BaseController', BaseController);
Но, похоже, мой контроллер вообще не может видеть форму.Судя по всему, что я прочитал, я пишу код правильно.Мои два вопроса:
1: почему ng-message
не исчезнет, когда мой ввод верен?
2: Почему мой контроллер не может видеть мой объект формы?
Вот кодовая ручка , демонстрирующая мою проблему.Я использую AngularJS 1.5.3
Для справки, вот ресурсы, на которые я ссылался до сих пор:
Как использовать ng-messages
AngularJS форма и состояние управления
Использование синтаксиса «контроллер как»
общие проблемы с сообщениями ng