Como definir uma opção selecionada de um controle de lista suspensa usando JS angular

Estou usando o Angular JS e preciso definir uma opção selecionada de um controle de lista suspensa usando o JS angular. Perdoe-me se isso é ridículo, mas eu sou novo com Angular JS

Aqui está o controle da lista suspensa do meu html

 0" name="posterVariants" ng-show="item.id==8" ng-model="item.selectedVariant" ng-change="calculateServicesSubTotal(item)" ng-options="v.name for v in variants | filter:{type:2}">  

Depois de ficar preenchido eu recebo

    set of 6 traits 5 complete sets  

Como posso definir o controle para value="0" para ser selecionado?

Espero ter entendido sua pergunta, mas a diretiva ng-model cria uma binding bidirecional entre o item selecionado no controle e o valor de item.selectedVariant . Isso significa que alterar item.selectedVariant em JavaScript ou alterar o valor no controle atualiza o outro. Se item.selectedVariant tiver um valor 0 , esse item deverá ser selecionado.

Se variants é uma matriz de objects, item.selectedVariant deve ser definido como um desses objects. Eu não sei quais informações você tem em seu escopo, mas aqui está um exemplo:

JS:

 $scope.options = [{ name: "a", id: 1 }, { name: "b", id: 2 }]; $scope.selectedOption = $scope.options[1]; 

HTML:

  

Isso deixaria o item “b” a ser selecionado.

Eu não sei se isso vai ajudar alguém ou não, mas como eu estava enfrentando o mesmo problema, pensei em compartilhar como consegui a solução.

Você pode usar rastrear por atributo em suas ng-options .

Suponha que você tenha:

 variants:[{'id':0, name:'set of 6 traits'}, {'id':1, name:'5 complete sets'}] 

Você pode mencionar suas ng-options como:

 ng-options="v.name for v in variants track by v.id" 

Espero que isso ajude alguém no futuro.

Se você atribuir o valor 0 ao item.selectedVariant ele deverá ser selecionado automaticamente. Confira a amostra em http://docs.angularjs.org/api/ng.directive:select que seleciona a cor vermelha por padrão simplesmente atribuindo $scope.color='red' .

Eu vejo aqui já escreveu boas respostas, mas em algum momento para escrever o mesmo em outra forma pode ser útil

 

Pode ser útil. Ligações dose nem sempre funciona.

  

Por exemplo. Você preenche o modelo de origem da lista de opções do serviço de descanso. O valor selecionado era conhecido antes da lista de preenchimento e foi definido. Depois de executar a opção rest-request com a lista $ http, faça a opção. Mas a opção selecionada não está definida. Por razões desconhecidas, o AngularJS em shadow $ digest não se liga como deve ser. Eu tenho que usar o JQuery para definir selecionado. É importante! Angular na sombra adiciona o prefixo ao valor do “valor” de attr gerado pelos optinos da repetição do ng. Para int, é “number:”.

 $scope.issue.productId = productId; function activate() { $http.get('/product/list') .then(function (response) { $scope.products = response.data; if (productId) { console.log("" + $("#product option").length);//for clarity $timeout(function () { console.log("" + $("#product option").length);//for clarity $('#product').val('number:'+productId); //$scope.issue.productId = productId;//not work at all }, 200); } }); } 

Maneira simples

Se você tiver um Users como resposta ou um Array / JSON definido, Primeiro você precisa definir o valor selecionado em controller e, em seguida, colocar o mesmo nome de modelo em html. Este exemplo eu escrevi para explicar de maneira mais fácil.
Exemplo simples
Controlador Interno:

 $scope.Users = ["Suresh","Mahesh","Ramesh"]; $scope.selectedUser = $scope.Users[0]; 

Seu HTML

  

exemplo complexo
Controlador Interno:

 $scope.JSON = { "ResponseObject": [{ "Name": "Suresh", "userID": 1 }, { "Name": "Mahesh", "userID": 2 }] }; $scope.selectedUser = $scope.JSON.ResponseObject[0]; 

Seu HTML

  

You selected: {{selectedUser.Name}}

Tente o seguinte:

Arquivo JS

 this.options = { languages: [{language: 'English', lg:'en'}, {language:'German', lg:'de'}] }; console.log(signinDetails.language); 

Arquivo HTML