2016-04-20 42 views
0

我有一個嵌套列表/數組中的AngularJS爲正確NG-模型和NG-值:嵌套列表,而在AngularJS 1.5.x的

$scope.myCars = [ 
    name: 'Audi', types: [ 
     {name: 'A4', price: '150000'}, 
     {name: 'A6', price: '250000'}, 
     {name: 'A8', price: '350000'} 
    ], 
    name: 'BMW', types: [ 
     {name: 'M1', price: '250000'}, 
     {name: 'M3', price: '450000'} 
    ] 
]; 

我循環通過列表,並通過產生DOM :

<ul> 
    <li ng-repeat="car in MyCars"> 
     {{car.name}}: 
     <ul> 
      <li ng-repeat="type in car.types"> 
       {{type.name}}: 
       <input ng-model="type.name" ng-value="type.price"> 
      </li> 
     </ul> 
    </li> 
</ul> 

它正確地顯示所有的東西,但是當我更新的輸入領域的價格,在$ scope.myCars我的$手錶改變type.name而不是type.price - 這是錯誤的。

我是否正確做事,或?

+0

你可以添加控制器代碼嗎? –

+1

錯字:'ng-model =「type.name」'應該是'ng-model =「type.price」'。你不需要設置'ng-value'。 – Cerbrus

+1

這不是一種類型,它是對「ng-model」和「ng-value」如何工作的誤解。因此它不應該被關閉。 –

回答

2

您使用ng-model="type.name"這臺雙向數據該輸入和type.name價值之間的結合 改變。如果你想擁有的數據與type.price用這個代替結合:

<input ng-model="type.price"> 

心中有沒有ng-value這裏是因爲從ng-value因爲ng-model覆蓋值與ng-model使用相同的文字輸入元素時,它沒有任何意義。

注意:ng-value不適用於<input type="text">,它是用於<input type="radio">option

1

你不需要使用ng-model的ng值。這

<input ng-model="type.name" ng-value="type.price"> 

<input ng-model="type.price" >