#angularjs #angular-ngmodel #ng-options #angularjs-ng-options #angularjs-select
#angularjs #angular-ngmodel #ng-options #angularjs-ng-options #angularjs-выбрать
Вопрос:
Я ng-option
элемент на своей странице.
Вот как это выглядит в шаблоне:
<select ng-model="selectedItem" ng-options="item.name for item in items track by item.id"></select>
В контроллере:
$scope.selectedItem = {};
$scope.items = [{name: 'one', id: 30 },{ name: 'two', id: 27 },{ name: 'threex', id: 50 }];
В моем проекте я получаю элементы области из некоторой таблицы поиска.
Мне нужно добавить в ng-выберите этот элемент со значением -1
:
<option value="-1">- manual -</option>
И это выглядит так:
<select ng-model="selectedItem" ng-options="item.name for item in items track by item.id">
<option value="-1">- manual -</option>
</select>
Вот Plunker.
Но я не вижу в view manual
опции.
Есть идеи, почему я не могу увидеть ручную опцию в представлении?
Ответ №1:
Поскольку у вас есть объект с id-name
pair, вам нужно использовать unshift для добавления новой опции в первую позицию.
$scope.items.unshift({name: 'manual', id:-1});
Затем укажите опцию, которая будет выбрана по умолчанию.
$scope.selectedItem = $scope.items[0];
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.items = [];
$scope.items = [{name: 'one', id: 30 },{ name: 'two', id: 27 },{ name: 'threex', id: 50 }];
$scope.items.unshift({name: 'manual', id:-1});
$scope.selectedItem = $scope.items[0];
});
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script data-require="angular.js@1.3.15" data-semver="1.3.15" src="https://code.angularjs.org/1.3.15/angular.js"></script>
<script>document.write('<base href="' document.location '" />');</script>
<link rel="stylesheet" href="style.css" />
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<select ng-model="selectedItem" ng-options="item.name for item in items track by item.id">
</select>
</body>
</html>
Комментарии:
1. Мне нужно это значение в параметре
Ответ №2:
добавьте опцию в контроллер после извлечения элементов,
$scope.items.push({name:'-manual-', id: -1});
Ответ №3:
измените свой выбор, как показано ниже
<select ng-model="selectedItem" ng-options="item.name for item in items track by item.id">
<option value="">Manual</option>
</select>
Ответ №4:
Мы можем просто поместить атрибут ng-selected =»желаемое значение элемента», чтобы выбрать элемент, который является им.
<select ng-model="selectedItem" ng-options="item.name for item in items track by item.id" ng-selected="50">
<option value="">Manual</option>
</select>