ng-selecionado não está funcionando no elemento select

Eu tenho um seleto vinculado

 

mas quando ambos c.CollegeName == collegeSelection.CollegeName coincidem com o item ainda não está selecionado. Documentação não parece ajudar. Alguma ideia?

ng-selected deve ser usado na tag , não na tag . Dê uma olhada no seu documento e no exemplo.

Porque a determinação da diretiva select da opção selecionada é baseada em ngModel . Portanto, depois de remover ng-selected="c.CollegeName == collegeSelection.CollegeName" , seu código deve funcionar.

Eu criei um plunk muito simples para demonstrar o recurso “selecionado” na diretiva select .

Mais detalhes:

O AngularJS usa a diretiva ngModel para habilitar a “binding de dados bidirecional” entre o modelo e os elementos da interface do usuário.

No caso de “select”, o modelo collegeSelection você especificou como é o item selecionado . O que significa que, se um usuário selecionar um item na lista suspensa da página, collegeSelection será definido para esse item. e , se você definir collegeSelection para um item em seu código javascript, o AngularJS irá certificar-se de que a correspondida esteja selecionada.

Digamos que você tenha o seguinte código no seu controlador:

 $scope.colleges = [ {id: 0, name: 'a'}, {id: 1, name: 'b'}, {id: 2, name: 'c'} ]; $scope.collegeSelection = $scope.colleges[0]; 

E o HTML se parece com:

  

É isso aí! A primeira faculdade na matriz de faculdades será selecionada se você executar o código.

Lembre-se de que collegeSelection é a opção selecionada, não importa porque o usuário selecionou um item na interface do usuário ou selecionou um item em javascript.

É assim que funciona a binding de dados bidirecional.

Depois de brincar com o ng-selected por um tempo, eu não consegui fazê-lo funcionar como você está perguntando. No entanto, eu era capaz de pré-selecionar uma opção específica usando o ng-init .

Aqui está um JSFiddle da minha solução. Meu acabou sendo:

  ` 

E minha matriz de colors é:

  colors = [ {name:'Red', value: 'red'}, {name:'Orange', value: 'orange'}, {name:'Yellow', value: 'yellow'}, {name:'Green', value: 'green'}, {name:'Blue', value: 'blue'}, {name:'Indigo', value: 'indigo'}, {name:'Violet', value: 'violet'} ] 

Mudar o ng-init="selectedColor='yellow'" para outro valor irá selecionar uma opção diferente.

Algumas pessoas têm problemas com isso. Eu encontrei uma ótima solução para um simples drop down se controller as someController

 var vm = this; this.colors = [ {name:'Red'}, {name:'Orange'}, {name:'Yellow'}, {name:'Green'}, {name:'Blue'}, {name:'Indigo'}, {name:'Violet'} ]; this.color_selected = "Yellow";  

`

Eu tive um problema semelhante e percebi que a causa era por causa dos diferentes tipos de dados. ng-model estava comparando com um valor de string, mas eu estava puxando um inteiro do database para que ele não selecionasse automaticamente a opção. Para superar isso, chamei toString() no inteiro depois de consultar os dados do database para garantir que os tipos de dados correspondam.