我有一个页面,在用户单击按钮后显示输入字段。如果用户多次单击同一按钮,则应用程序将多次生成相同的输入字段。同样,有一个按钮可以删除添加的最后一个输入字段。
在用户生成并填写了他们想要的任意数量的输入字段之后,我希望用户能够单击一个按钮,该操作将从输入字段中收集所有信息,然后执行控制台。 log()所有这些信息。我将如何在Angular.js中执行此操作?
以下是我目前正在添加/删除输入字段的部分,以及我尝试从视图中收集数据的方法。
<div ng-app="" ng-controller="myController">
<button ng-click="add()">Click Me to Add!</button>
<button ng-click="rem()">Click Me to Remove!</button>
<div ng-repeat="x in obj">
<label>Input 1</label><input type="text" ng-model="thing">
</div>
<button ng-click="display()">display</button>
</div>
<script>
function myController($scope){
$scope.obj = [];
$scope.count = 0;
$scope.add = function(){
$scope.count = $scope.count + 1;
$scope.obj.push({lett: $scope.count});
};
$scope.rem = function(){
$scope.count = $scope.count - 1;
$scope.obj.pop();
};
$scope.display = function(){
console.log($scope.thing);
};
}
</script>
我做ng-model="thing"
的部分是我尝试将数据从视图绑定到应用程序。 $scope.display
是应该进行显示的功能。
提前感谢您的回复!
答案 0 :(得分:1)
我重写了一些代码以使其正常工作:
<div ng-app="" ng-controller="myController">
<button ng-click="add()">Click Me to Add!</button>
<button ng-click="rem()">Click Me to Remove!</button>
<div ng-repeat="input in inputs track by $index">
<label>Input {{ $index }}</label>
<input type="text" ng-model="input.value" />
</div>
<button ng-click="display()">display</button>
</div>
<script>
function myController($scope){
$scope.inputs = [];
$scope.add = function(){
$scope.inputs.push({'value':''});
};
$scope.rem = function(){
$scope.inputs.pop();
};
$scope.display = function(){
console.log($scope.inputs);
};
}
</script>
你可以在这里看到小提琴: http://jsfiddle.net/K38GC/
要以您想要的方式显示,您可以编辑$ scope.display函数以适合您喜欢的任何内容。如果您有任何问题,请告诉我。