$ Scope.Form undefined angularjs

0

У меня есть следующий контроллер, где я получаю форму как "undefined".

angular.module('app').controller('MyController',['$scope', function(){

      $(document).ready(function () { 

      var form = $scope.Form1; // undefined

      }]);
  });

Пожалуйста, предложите наилучший способ обработки готового состояния, чтобы форма была доступна.

благодаря

  • 2
    честно говоря, вам не нужно готовиться здесь.
  • 0
    Не могли бы вы предоставить HTML. Если у вас есть форма с именем = Form1, то она будет работать.
Теги:
angularjs-scope
angularjs-directive

5 ответов

1

Попробуйте заменить

'MyController',['$scope', function(){

с

'MyController',['$scope', function($scope){

1

Вы забыли передать $ scope в свою функцию контроллера. Исправление:

angular.module('app').controller('MyController',['$scope', function($scope){ //$scope in function here

      $(document).ready(function () { 

      var form = $scope.Form1; // undefined

      }]);
  });

Кроме того, вам действительно не нужен jQuery.

0

Синтаксис не является проблемой, я написал "на лету", поэтому это багги.

Но я решил проблему, переместив этот код в директиве => link, и я получаю $ scope.Form1.

благодаря

0

Вы забыли аргумент $scope в своей function()

                                             ^
0

Что вы пропустили:

  1. пустой массив при создании углового модуля. angular.module('app', []).
  2. $scope в функции аргумента function($scope){.

Просто сделайте правильный селектор и передайте $scope в func args:

angular.module('app', []).controller('MyController',['$scope', function($scope){ // <---pass $scope here
    $scope.Form1 = document.querySelector('form')
}]);

Пример теста ниже:

angular.module('testApp', []).controller('formController',['$scope', function($scope){
    $scope.form = document.querySelector('form');
    $scope.getValue= function(){
      alert($scope.form.id);
    }
}]);
<div ng-app='testApp'>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js"></script>

  <form ng-controller='formController' id='testForm'>
  <input type='text' placeholder='dummy text to be placed' autofocus ng-focus='getValue()'>
  </form>
  
</div>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню