Мне нужно заполнить элемент select (option) внутри файла шаблона html с контроллера. Я мог бы сделать это успешно, но не могу дать значение по умолчанию (чтобы избежать первой пустой опции)
Файл template.html
...
<select name="drill_down" id="drill_down" ng-model="drill_down"
ng-options="item.value for item in items"></select>
...
Файл controller.js
(function () {
'use strict';
var app = angular.module('appname', []);
app.config(function($stateProvider) {
$stateProvider
.state('appname', {
url: '/appname',
templateUrl: '/appname/template.html',
controller: 'AppCtrl'
});
});
app.controller('AppCtrl', AppCtrl);
function AppCtrl($scope, MyService) {
$scope.college_majors_full = [];
$scope.job_title_functions = [];
MyService.getData().then(function(rows) {
$scope.items = rows; // this works - populates select options
$scope.drill_down = $scope.items[0].value; // this doesn't work
});
...
Любая помощь? Благодарю.
Ваши параметры имеют только текстовое свойство ваших товаров
Вы назначаете значение вместо id
Попробуйте это
$scope.drill_down = $scope.items[0].value;
Или вы можете создать тип текста значения в опции
Попробуйте это
Посмотреть
<select name="drill_down" id="drill_down" ng-model="drill_down"
ng-options="item.id as item.value for item in items"></select>
контроллер
$scope.drill_down = $scope.items[0].id;
Вы можете установить значение по умолчанию через ngModel
. См. Этот ответ о настройке значения по умолчанию для ngOption
:
var app = angular.module('optionsApp', []);
app.controller('optionsCtrl', function($scope) {
$scope.prop = {
"type": "select",
"name": "Service",
"value": "Service 3",
"values": ["Service 1", "Service 2", "Service 3", "Service 4"]
};
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="optionsApp">
<div ng-controller="optionsCtrl">
<select ng-model="prop.value" ng-options="v for v in prop.values"></select>
</div>
</div>