Вызовите функцию в элементе выбора для заполнения источника ngOptions?
У меня есть <select>
как показано ниже:
<div ng-show="myCtrl.name == 'Jack'">
<select ng-model="myCtrl.selectedValue" ng-options="value.id as value.title for value in myCtrl.valueDrpValues">
<option value=""> Select One ...</option>
</select>
</div>
И в myController.js
У меня есть функция, которая должна заполнить myCtrl.valueDrpValues
, как я могу вызвать эту функцию из тега выбора? Я протестировал ng-init, но он не работал. Кроме того, я вызвал функцию именно из ng-option
и это тоже не сработало. (как показано ниже:)
ng-options="value.id as value.title for value in definitionCtrl.fillValueDrp()"
2 ответа
Вы можете использовать ng-init
Вызовите там свою функцию, и ваш массив будет заполнен, например, так:
<div ng-init="fillValueDrp()">
<div ng-show="myCtrl.name == 'Jack'">
<select ng-model="myCtrl.selectedValue" ng-options="value.id as value.title for value in myCtrl.valueDrpValues">
<option value=""> Select One ...</option>
</select>
</div>
</div>
Попробуй это.
var app = angular
.module('MyApp', [
])
.controller('Main', ['$scope', function ($scope) {
var self = this;
self.items = [];
self.name = "Jack";
self.fillValueDrp = function(){
for(var i=0 ;i < 5; i++){
self.items.push({"id":i,"title":i});
}
}
}])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div class="main-content" ng-app="MyApp" ng-controller="Main as myCtrl">
<div ng-show="myCtrl.name == 'Jack'" ng-init= "myCtrl.fillValueDrp()">
<select ng-model="myCtrl.selectedValue "ng-options="value.id as value.title for value in myCtrl.items">
<option value=""> Select One ...</option>
</select>
</div>
</div>