2016-06-24 63 views
1

我在學習角度,並試圖在我的測試頁上實現動態綁定。我的目標是實現輸入框,每個輸入框綁定到一個動態獲取的變量名稱。對繼承的作用域變量的角度綁定

如果我不會在根作用域中聲明結果數組 - 它會爲每次重複創建結果數組,每個框下面我會看到它是自己的結果內容。

但是,如果我在根範圍內執行decalre結果,並且因爲我沒有重新聲明它 - 沒有陰影必須應用,我應該將每個框綁定到根作用域數組中的變量。但是,我在每個框下只能看到根作用域的數組內容,並且在更改輸入時不會改變。 任何幫助表示讚賞。

這是我的例子:

HTML:

<!DOCTYPE html> 
<html> 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script src="index.js"></script> 
<body ng-app="app" ng-controller="main" > <!--ng-init="results = [{'TEST': 1}]" --> 

<div> 
    <p>Name: <input type="text" ng-model="name"></p> 
    <p ng-bind="name"></p> 
    <input type="button" value="Clickme" ng-click="clickfnc()"> 
    <input type="button" value="Dump" ng-click="dump()"> 
    <input type="button" value="Pop" ng-click="remove()"> 
</div> 

<div ng-repeat="x in params"> 
    <p>Name: <input type="text" ng-model="results[x.name]"></p> 
    <p ng-bind="results[x.name]"></p> 
    <p>{{x.name}}</p> 
    <p>{{results}}</p> 
    <p>{{params}}</p> 
</div> 

<hr> 

<p ng-bind="results"></p> 

<hr> 

</body> 
</html> 

index.js:

var app = angular.module('app', []); 
app.controller('main', function ($scope) 
{ 
    $scope.clickfnc = function() 
    { 
     console.log('click'); 

     $scope.params = [ 
      { 
       name: 'ACCOUNT' 
      }, 
      { 
       name: 'AMOUNT' 
      } 
     ]; 
    }; 

    $scope.dump = function() 
    { 
     console.log($scope.results) 
    }; 

    $scope.remove = function() 
    { 
     $scope.params.pop(); 
    } 
}); 

回答

1

如果我理解正確的是你的目標,原因你沒有你創建results數組,但你應該創建對象。
Here:<p>Name: <input type="text" ng-model="results[x.name]"></p>
您將新屬性賦值給結果,所以它應該是對象。你可以檢查這個小提琴 - https://jsfiddle.net/kb5udcac/

+0

謝謝!我的錯誤,在下一次詢問之前會好一點。 – user3177112