2016-06-24 2 views
1

각도를 학습하고 테스트 페이지에서 동적 바인딩을 구현하려고했습니다. 내 목표는 입력 상자를 구현하는 것이고, 각각은 동적으로 얻은 변수 이름 중 하나에 바인딩됩니다.상속 된 범위 변수에 대한 각도 바인딩

루트 범위에서 결과 배열을 선언하지 않으면 모든 반복에 대해 결과 배열이 만들어지고 각 상자 아래에 자체 결과 내용이 표시됩니다.

그러나 만약 내가 decalre 결과 루트 범위에서, 그리고 이후로 내가 다시 redeclare - 섀도 잉 적용해야하며 루트 범위의 배열에있는 변수에 각 상자를 바인딩해야합니다. 하지만 대신 각 범위에서 루트 범위의 배열 내용 만 볼 수 있으며 입력을 변경하는 동안 변경되지 않습니다. 도움을 주시면 감사하겠습니다.

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를 만든 실패 여기

내 예입니다 배열을 만들지 만 객체를 만들어야합니다.
여기에 : <p>Name: <input type="text" ng-model="results[x.name]"></p>
새 속성을 결과에 할당하므로 개체 여야합니다. 이 피들을 확인할 수 있습니다 - https://jsfiddle.net/kb5udcac/

+0

감사합니다! 내 실수는 다음 번에 물어보기 전에 더 좋아 보일 것입니다. – user3177112

관련 문제