как использовать переменные имени формы в угловой области видимости

0

У меня есть html-фрагмент:

<div ng-controller="FormCtrl">
   <form  name="{{formName}}"></form>
</div>

и такой контроллер

angular.module('myApp')
  .controller('FormCtrl', function ($scope) {
   $scope.formName = "aFormName";
   $scope.aFormName.$dirty = false // this works
   $scope[formName].$dirty = false // does not work, I get undefined.
});

Проблема в том, что я хочу получить форму на основе переменной, потому что само название может измениться позже.

  • 0
    здесь есть несколько ошибок, одна из которых состоит в том, что $ scope не является массивом, поэтому $ scope ['var'] не работает. для этого вы должны создать свой собственный массив, например, $ scope.arr = [];
  • 0
    Я понял, что мне пришлось использовать $scope.formName внутри скобок, например: $scope[$scope.formName] , что аналогично написанию $scope.aFormName в этом случае. И это не вызовет никаких ошибок.
Теги:

1 ответ

0
Лучший ответ

Я забыл добавить $scope перед именем переменной, когда пытался получить форму. Я должен сделать это следующим образом: $scope[$scope.formName].$dirty = false

 angular.module('myApp')
      .controller('FormCtrl', function ($scope) {
       $scope.formName = "aFormName";
       $scope.aFormName.$dirty = false // this works
       $scope[$scope.formName].$dirty = false // Now it works
    });

Ещё вопросы

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