ngForm не работает в веб-приложении, но работает в jsFiddle

#angularjs

#angularjs

Вопрос:

Я пытаюсь использовать $invalid свойства ngForm, чтобы отключить кнопку отправки в моем приложении. По какой-то причине экземпляр FormController, к которому я должен иметь доступ после <form> создания, недоступен. Однако я перенес код в jsFiddle, и по какой-то причине он работает сейчас.

Вот jsFiddle

В моем реальном приложении в консоли нет ошибок, и я включаю angular.min.js правильно, потому что все остальное работает нормально. Я не понимаю, что делать дальше, поскольку код в основном одинаков в обоих.

Комментарии:

1. Это то, что кнопка всегда отключена или всегда нет? Скрипка — это весь ваш проект целиком или просто часть более крупного проекта? Вам нужно предоставить больше информации!

2. Извините, но я пытался потерять большую часть другого кода в моем проекте, и это все равно не сработало. Кнопка всегда включена, потому что <form>, я полагаю, никогда не создает FormController

Ответ №1:

Не видя, что находится в вашем контроллере, это всего лишь предположение, но когда у меня возникают проблемы с тем, что не работает по непонятным причинам, я обычно могу решить проблему, создав объект в области видимости и отключив от него все (как вы уже сделали).)

 function Controller($scope) {
    $scope.form = {
        email:'',
        employees:'',
        migDate:''
    };

}
  

Хитрость здесь в том, что вам нужно назвать свою форму аналогичным образом:

 <form name="form.newMigForm" novalidate ng-controller="myControllerName">
  

а затем, когда вы устанавливаете флажок $invalid в своей кнопке, вы используете то же соглашение:

 <input id="qaStartForm" ng-disabled="form.newMigForm.$invalid" ng-click="submitNewMigration()" type="button" class="btnOrangeLarge" value="Start" />
  

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

Комментарии:

1. Хммм… Я попробовал это и все равно не повезло. Я не могу показать весь HTML, потому что это огромный файл, как только наша CMS подключается и отображает полную веб-страницу. Это то, что затрудняет отладку

2. Вы можете попробовать указать контроллер в форме. Пример отредактирован.