2014-01-30 71 views
0

我有以下麻煩。在AngularJS視圖中,我有幾行動態生成的輸入 。我正在尋找 優雅的方式從這個生成的輸入中獲取數組。 這是我的HTML:收集來自多個輸入值的角度方法

<div ng-app> 

    <div ng-controller="TestCtrl"> 
     <input type="button" value="+" ng-click="addNewRow();"/> 
     <div ng-repeat="item in items"><input type="text" name="key" ng-value="{item.name}"/> : <input type="text" ng-value="{item.value}"/> 
      <input type="button" value="x" ng-click="removeItem($index);"/> 
     </div> 

     <input type="button" value="Test" ng-click="showItems();"/> 
    </div> 
</div> 

,這是我的javascript代碼:

function TestCtrl($scope) { 
    $scope.items = [ 
     {name: "", value: ""} 
    ]; 

    $scope.addNewRow = function() { 
     $scope.items.push({ 
      name: "", 
      value: "" 
     }); 
    }; 

    $scope.removeItem = function (index) { 
     $scope.items.splice(index,1); 
    };  

    $scope.showItems = function() { 
     alert($scope.items.toSource()); 
    } 
}; 

警報($ scope.items.toSource());只有在Firefox下才能正常工作,並且可以使用 查看數組是空的。我正在尋找一種方法來更新數組或其他角度的方法 方法。 document.querySelector(「input [attr]」)或jQuery相似是不好的想法,我認爲。

這裏是工作的jsfiddle: http://jsfiddle.net/zono/RCW2k/21/

我將不勝感激的任何建議和想法。

此致敬禮。

+1

看看[這個](http://stackoverflow.com/a/21438756/189756) –

+1

你是什麼意思'從這個生成的輸入'獲取數組?數組是'$ scope.items',你已經可以訪問它 –

+1

你需要這樣的東西:http://jsfiddle.net/6aQt7/1/? –

回答

1

ngModel使用:

ngModel的指令結合輸入,選擇,文本區域(或定製的形式 控制),以一個屬性上使用NgModelController範圍,這是 創建和此指令露出。

你的觀點應該是這樣的:

<div ng-repeat="item in items"> 
    <input type="text" ng-model="item.name"/> : 
    <input type="text" ng-model="item.value"/> 
    <input type="button" value="x" ng-click="removeItem($index);"/> 
</div> 

(至於在你的代碼中使用的toSource(),它不是任何標準的一部分 - 壁虎只)

工作例如:http://jsfiddle.net/rgF37/

+0

是的。我知道這對於Source只是壁虎。我已經寫道,這隻適用於Firefox。感謝您的幫助。 –