#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. Вы можете попробовать указать контроллер в форме. Пример отредактирован.