Невозможно заставить ng-сообщение исчезнуть, когда форма верна или ссылка в контроллере - PullRequest
0 голосов
/ 08 марта 2019

Я знаю, что этот вопрос задавался много раз, но ни один из ответов / ресурсов не смог мне помочь.

Я пытаюсь создать простую угловую форму, которая будет принимать число и отображать сообщение, если оно отрицательное:

<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

1 Ответ

0 голосов
/ 09 марта 2019
<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 />
    ̶<̶d̶i̶v̶ ̶n̶g̶-̶m̶e̶s̶s̶a̶g̶e̶s̶=̶"̶v̶m̶.̶m̶e̶c̶h̶a̶n̶i̶c̶a̶l̶F̶o̶r̶m̶.̶n̶u̶m̶b̶e̶r̶.̶$̶e̶r̶r̶o̶r̶"̶>̶
    <div ng-messages="vm.mechanicalForm.test.$error">
      <div ng-message="min">
        Test worked
      </div>
    </div>
    <input type="button" ng-click="vm.save()" value="Save" />
</form>

DEMO на PLNKR

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...