2014-08-27 63 views
0

我無法使用AngularJs在我的選擇選擇器中獲取ng-init指令。即使id productQuantity/unitName有一個值,也不會選擇任何選項。AngularJs使用另一個作用域屬性的init值選擇指令

這裏我的JSON對象是如何形成的:

inventoryLines: Array[1] 
0: Object 
    permitedFormatUnits: Array[2] 
    0: Object 
     unitName: "Kilo" 
    1: Object 
     unitName: "Gramme 
    productQuantity: Object 
    formatUnit: Object 
     unitName: "Gramme" 
    quantity: 456 

我需要的permitedFormatUnits是選擇,用戶可以進行和產品數量/ formatUnit是NG-INIT值和NG-模型值很好。

這裏是我的html其中線代表在NG-重複循環的inventoryLines:

<select class="selectpicker" name="unitFormat" 
    ng-init="formatUnit = line.productQuantity.formatUnit.unitName" 
    ng-model="line.productQuantity.formatUnit" 
    ng-options="formatUnit as formatUnit.unitName for formatUnit in line.permitedFormatUnits"> 
</select> 

非常感謝你的幫助,希望我已經夠清楚了! :

回答

0

這裏是一個工作plunkr:http://plnkr.co/edit/TyWqjW2KQ0LEngWX9uVx

您需要使用track by,使其工作(見DOC - https://docs.angularjs.org/api/ng/directive/select):

<select class="selectpicker" name="unitFormat" 
     ng-init="formatUnit = line.productQuantity.formatUnit" 
     ng-model="line.productQuantity.formatUnit" 
     ng-options="formatUnit as formatUnit.unitName for formatUnit in line.permitedFormatUnits track by formatUnit.unitName"> 
</select> 

的JS:

angular.module('myApp', []) 
    .controller('myCtrl', function($scope) { 
     $scope.line = { 
      permitedFormatUnits: [{ 
       unitName: "Kilo" 
      }, { 
       unitName: "Gramme" 
      }], 
      productQuantity: { 
       formatUnit: { 
        unitName: "Gramme", 
        quantity: 456 
       } 
      } 

     } 
    }) 
+0

非常感謝你!!我很親密! :) – leseulsteve 2014-08-27 23:35:29

相關問題