2016-12-28 3 views
0

При попытке получить доступ к допустимому свойству поля формы изнутри контроллера, я получаю «не могу получить доступ к $ valid undefined». Вот что я пытался, на основе других ответов на SO, но безрезультатно:Не удалось получить доступ к форме от Angular Controller

  1. Использование controllerAs - я уже использовал controllerAs в моем маршруте, но для хорошей меры Я добавил нг-контроллер = "TestCtrl в testCtrl "в мой контейнер DIV.
  2. Попробуйте ng-init, передав область действия - я добавил ng-init в тег формы (ng-init = testFunction (this), который вызывает функцию контроллера, чтобы установить свойство в области, называемой formScope (как видно здесь: AngularJs can't access form object in controller ($scope))
  3. Try сфера = {} в контроллере
  4. Несколько других предложений, которые я не в состоянии вспомнить прямо сейчас

Мои требования, мне, просто:. когда поле нагрузки (контроллер нагрузки данные модели), нам необходимо:

  1. Показать подходящий глификон проверки рядом с полем.
  2. При изменении валидности поле, тем glyphicon необходимо изменить соответственно
  3. иконки:
    когда $ действует = ложь, использование glyphicon-удалить
    когда $ действует = истина, использование glyphicon-ок
    когда $ действует = нуль или не определено (? возможно), используйте glyphicon-предупредительный знак-
  4. Уметь передать действительность в директиве (будущего использования)

Смотрите следующий шлепнуть: https://embed.plnkr.co/XXFM6Mtt1KnSci5yagTd/

Любая помощь или разные подходы приветствуются. Это пинает мою задницу. Благодаря

ответ

2

Заменить

self.sexValid = testForm.sex.$valid; 

по

self.sexValid = self.testForm.sex.$valid; 

Тем не менее, почему дублировать эту информацию в области управления, вместо того, чтобы просто используя

testCtrl.testForm.sex.$valid 

непосредственно в окне ?

+0

Хорошая точка. Думаю, переосмысливая проблему. Я ценю помощь - я попробовал ее в своем реальном приложении, и она там тоже работает. Спасибо. – miarde

Смежные вопросы