/ / Angular: ng-options adicionar diretiva personalizada - angularjs, angularjs-diretiva, ng-repeat, ng-options

Angular: ng-options adiciona diretiva personalizada - angularjs, diretiva angularjs, ng-repeat, ng-options

Eu quero criar uma marca de seleção com o valor "selecionado". Estou fazendo isso com ng-repeat uma vez que não posso adicionar uma diretiva personalizada para opções-ng. Este é o código.

    <select class="ng-valid ng-dirty" ng-model="selectedCity">
<option ng-repeat="city in allCities" value="{{city.id}}" after-render-cities>{{city.name}}</option>
</select>

Isso adiciona uma opção extra com valor =? String: 1? que eu pesquisei muito. Desde a opções-ng resolve esse problema, no entanto, tenho que adicionar a diretiva after-render-cities para cada opção. Como posso resolver esse problema?

Respostas:

0 para resposta № 1

Usa isto

<select class="ng-valid ng-dirty" ng-model="selectedCity" ng-options="city.id as city.name for city in allCities">
</select>

para a seleção do primeiro valor, escreva o código a seguir em seu controlador

$scope.selectedCity = $scope.allCities[0].id;

0 para resposta № 2

use ng-init para resolver valor =? string: 1?

<select class="ng-valid ng-dirty" ng-model="selectedCity" ng-init="selectedCity=allCities[0].id">
<option ng-repeat="city in allCities" value="{{city.id}}" after-render-cities>{{city.name}}</option>
</select>

outra escolha que você pode usar selecionado pelo ng violino

 <option ng-repeat="(key,city) in allCities" ng-selected="key==0" value="{{city.id}}" after-render-cities>{{city.name}}</option>
</select>

0 para resposta № 3

Experimente este código

Java Script

var app = angular.module("myApp", []);
app.controller("SampleController", function ($scope) {
$scope.Cities = [
{ Id: 1, Name: "New York" },
{ Id: 2, Name: "Colombo" },
{ Id: 3, Name: "Real Madrid" },
{ Id: 4, Name: "Bostan" },
{ Id: 5, Name: "Birmingham" }
];
$scope.City= 3;
});

HTML

<select ng-options="C.Id as C.Name for C in Cities" ng-model="City"></select>

Leia este blog, ele tem tudo explicado.


0 para a resposta № 4

Você pode criar um personalizado directiveusando select e ng-options.

Snippet:

JS:

template: "<select ng-options="item.id as item.name for item in list" ng-model="data"></select>",

HTML:

<div select-option list="list" ng-model="data"></div>

Consulte a demonstração Aqui.