Как использовать переменные из контроллера в ng-repeat в AngularJS - PullRequest
0 голосов
/ 03 марта 2020

Я только учусь AngularJS и хочу использовать переменную ng-repeat из контроллера (без использования области), но она не работает. Кто-нибудь может указать на мою ошибку? Это мой код:

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
<select>
    <option ng-repeat="x in myCtrl.names">{{x}}</option>
</select>
</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    var that = this;
    that.names = ["Emil", "Tobias", "Linus"];
});
</script>
</body>
</html>

Ответы [ 2 ]

1 голос
/ 03 марта 2020

Установить переменную в области.

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
     $scope.names = ["Emil", "Tobias", "Linus"];
});

Использовать переменную в контроллере

var app = angular.module('myApp', []);
app.controller('myCtrl', function() {
    var self = this;
    self.names = ["Emil", "Tobias", "Linus"];
});
<script src="//unpkg.com/angular/angular.js"></script>

<div ng-app="myApp" ng-controller="myCtrl as myController">
    <select>
        <option ng-repeat="x in myController.names">{{x}}</option>
    </select>
</div>
0 голосов
/ 03 марта 2020

Вместо использования прямого имени контроллера, используйте это имя, которое мы упоминаем, где имя контроллера объявляется в html коде с использованием ключевого слова «as».

Например:

var app = angular.module('myApp', []);
app.controller('myCtrl', function() {
    var viewData = this;
    viewData.names = ["Emil", "Tobias", "Linus"];
});

<div ng-app="myApp" ng-controller="myCtrl as Ctrl">
    <select>
        <option ng-repeat="x in Ctrl.names">{{x}}</option>
    </select>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...