Aquí tengo una selección, donde quiero repetir los contactos del proveedor.

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="AppCtrl">
    Hello {{name}}
    
    <div ng-repeat="supplier in suppliers">
        {{supplier.name}}
        
        <select ng-options="contact.id as contact.name for contact in supplier.contacts">
        
        </select>
    </div>
    
</div>
<script>
var app = angular.module('app',[]);
    
    //app.directive('appDirective', function() {});
    //app.factory('appService', function() {});
    
    app.controller('AppCtrl', ['$scope', function($scope){
        $scope.name = "dave";
        
        $scope.suppliers = [
        		{id: 0, name: "dave", contacts : [
            	{id: 0, name: 'c1'},
              {id: 1, name: 'c2'},
              {id: 2, name: 'c3'},
              {id: 3, name: 'c4'},
            ]},
            {id: 1, name: "Steve", contacts : [
            	{id: 0, name: 'c1'},
              {id: 1, name: 'c2'},
              {id: 2, name: 'c3'},
              {id: 3, name: 'c4'},
            ]}
        ]
    }]);

</script>

Aquí tengo la controladora. Aquí tengo el controlador.

¿Cómo es que esto no parece funcionar?

http://jsfiddle.net/gnosticdave/091vpadb/1/

1
Dmac 29 ene. 2016 a las 23:11

2 respuestas

La mejor respuesta

contacts es parte de cada supplier, por lo que su matriz es en realidad supplier.contacts

select ng-options="contact.id as contact.name for contact in supplier.contacts"
                                                           ^^^^^^^^^^^^^^^^^^^^

Además, ngOptions necesita una ngModel Además, ngOptions necesita un ngModel

Demostración: http://jsfiddle.net/091vpadb/3/

2
tymeJV 29 ene. 2016 a las 20:15

Cambio:

<select ng-options="contact.id as contact.name for contact in contacts">

Para:

<select ng-options="contact.id as contact.name for contact in supplier.contacts">
0
Mihail Petkov 29 ene. 2016 a las 20:15