我已经看过其他类似的问题,但在我的案例中没有一个答案有用。
我的控制器加载一个对象和一个对象数组,并将它分配给两个变量。
阵列:
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
对象中的所有字段数据。
谢谢!
答案 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>