Доступ к элементу внутри templateUrl из контроллера - AngularJS

0

Мне нужно заполнить элемент 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
    });
...

Любая помощь? Благодарю.

Теги:

2 ответа

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

Ваши параметры имеют только текстовое свойство ваших товаров

Вы назначаете значение вместо 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;
  • 0
    Спасибо за вашу помощь! Оно работает. Но теперь он выбирает последний вариант по умолчанию. Даже если я выберу другой вариант, всегда будет выбран только последний вариант.
  • 0
    Вы можете предоставить скрипку?
Показать ещё 2 комментария
0

Вы можете установить значение по умолчанию через 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>

Ещё вопросы

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