#javascript #angularjs
#javascript #angularjs
Вопрос:
myModule.controller('MetadataController', function () {
this.allOrganisations = [{name:"test"}, {name:"alpha"}, {name:"beta"}];
var arrayLength = this.allOrganisations.length;
for (var i = 0; i < arrayLength; i ) {
alert(this.allOrganisations[i].name);
}
});
работает, но в представлении ничего не выходит?
<form name="form" novalidate ng-controller="MetadataController" class="form-inline">
<select ng-model="form.metadata.title.organisation" ng-options="organisation.name for organisation in form.AllOrganisations"></select><br>
<ul >
<li ng-repeat="o in form.allOrganisations">{{ o.name }}</li>
</ul>
Комментарии:
1. Поместить
this
в строку 3?2. @Peteyeah опечатка, отредактировал
3. Измените
this
на$scope
и добавьте$scope
к сигнатуре функции.4. Также удалите
form
перед всеми организациями в вашем представлении.
Ответ №1:
Пожалуйста, смотрите здесь http://jsbin.com/wewiv/1
myModule.controller('MetadataController', function ($scope) {
$scope.allOrganisations = [{name:"test"}, {name:"alpha"}, {name:"beta"}];
var arrayLength = $scope.allOrganisations.length;
for (var i = 0; i < arrayLength; i ) {
alert($scope.allOrganisations[i].name);
}
});
HTML:
<select ng-model="form.metadata.title.organisation" ng-options="organisation.name for organisation in allOrganisations"></select><br>
<ul >
<li ng-repeat="o in allOrganisations">{{ o.name }}</li>
</ul>
</div>