select元素angularJS的默认值

时间:2016-01-09 17:16:01

标签: javascript angularjs

我已经看过其他类似的问题,但在我的案例中没有一个答案有用。

我的控制器加载一个对象和一个对象数组,并将它分配给两个变量。

阵列:

customers.getCustomers() //pobieram odpowiedniego klienta
                    .then(function successCallback(response){
                        $scope.klienci = response.data.data;

                        console.log('Klienci', $scope.klienci[0])
                    }, function errorCallback(response){
                        console.log('Nie załadowałem użytkownika:'+response.status);
                        console.log(response.statusText);
                });

和单个对象:

customers.getCustomer($scope.serwis.id) //pobieram odpowiedniego klienta
                    .then(function successCallback(response){
                        $scope.customer = response.data;
                        console.log('Klient', response.data)
                    }, function errorCallback(response){
                        console.log('Nie załadowałem użytkownika:'+response.status);
                        console.log(response.statusText);
                });

对象数组中的第一个对象与单个对象完全相同,因此:

$scope.klienci[0] === $scope.customer

具体:

$scope.klienci[0] == {__metadata: Object, id: 1, firstName: "Jan", lastName: "Kowalski", telephone: "123132132"}
$scope.customer == {__metadata: Object, id: 1, firstName: "Jan", lastName: "Kowalski", telephone: "123132132"}

我的html片段在这里:

<select ng-model="customer.id" ng-options="klient.firstName for klient in klienci" class="form-control"></select>

Firebug代码:

<select ng-model="customer.id" ng-options="klient.firstName for klient in klienci track by klient.id" class="form-control ng-pristine ng-valid ng-not-empty ng-touched">
<option value="?" selected="selected"></option>
<option label="Jan" value="17">Jan</option>
<option label="Thomas" value="18">Thomas</option>
<option label="Stanislaw" value="19">Stanislaw</option>
<option label="Katarzyna" value="20">Katarzyna</option>
</select>

第一个选项是空白但如果我使用ng-model="customer"它会起作用,但我在保存时无法传递单个$scope.customer对象中的所有字段数据。

谢谢!

2 个答案:

答案 0 :(得分:1)

您正在为选项命名,但在指定时绑定到对象:

ng-model="customer"

你应该使用object作为选项:

ng-options="klient for klient in klienci"

或模型的名字:

ng-model="customer.firstname"

答案 1 :(得分:1)

customer.id无法与klient.firstName匹配, 如果您希望select选项具有默认值,则可以使用     <select ng-model="customer.id" ng-options="klient.id as klient.firstName for klient in klienci" class="form-control"></select>