Javascript 在AngularJS中输入时创建重复的文本框?
我正在尝试制作一系列文本框。它以一个文本框开始,但当用户将信息放入其中时,另一个空文本框将显示在其下方。这种情况将无限期地继续下去 每个文本框都需要有一个与之关联的Javascript 在AngularJS中输入时创建重复的文本框?,javascript,html,angularjs,Javascript,Html,Angularjs,我正在尝试制作一系列文本框。它以一个文本框开始,但当用户将信息放入其中时,另一个空文本框将显示在其下方。这种情况将无限期地继续下去 每个文本框都需要有一个与之关联的ng model值,并且每个文本框都需要由ng repeat生成 例如,我的HTML如下所示: <table ng-controller="BoxesController"> <tr ng-repeat="box in boxes"> <td><input type="text"
ng model
值,并且每个文本框都需要由ng repeat
生成
例如,我的HTML如下所示:
<table ng-controller="BoxesController">
<tr ng-repeat="box in boxes">
<td><input type="text" ng-model="box.input"></td> <!--boxes[0].input-->
</tr>
</table>
这将在视图中创建一个空框,其中box.input==”
。if
基本上是“如果数组中的最后一个值不是空的,则向数组中追加一个新的空值。”
最初,整个过程应该创建一个空框,然后在用户逐框输入数据时生成更多的框
然而,它实际上是生成两个完全不响应输入的空框
有人知道在这里该怎么做,怎么做吗
谢谢大家! 将条件包装到方法中:
$scope.newBox = function() {
if($scope.boxes[$scope.boxes.length - 1].input !== ""){
$scope.boxes.push({input: ""});
console.log( $scope.boxes)
$scope.$apply;
}
};
Html:
将条件包装在一个方法中:
$scope.newBox = function() {
if($scope.boxes[$scope.boxes.length - 1].input !== ""){
$scope.boxes.push({input: ""});
console.log( $scope.boxes)
$scope.$apply;
}
};
Html:
对于上面的答案,尝试使用一种方法。这里是使用ng change的另一个示例
angular.module('app',[])
.controller('BoxesController',['$scope',函数($scope){
$scope.box=[
{}
];
$scope.callChange=function(){
如果($scope.box[$scope.box.length-1].val!==“”){
$scope.box.push({val:});
}
};
}]);代码>
如上所述,尝试使用一种方法。这里是使用ng change的另一个示例
angular.module('app',[])
.controller('BoxesController',['$scope',函数($scope){
$scope.box=[
{}
];
$scope.callChange=function(){
如果($scope.box[$scope.box.length-1].val!==“”){
$scope.box.push({val:});
}
};
}]);代码>
您的意思可能是如果($scope.box[$scope.box.length-1]。输入!==”)
@kkkk您找到了@Dev One现在ng blur
处于未使用状态,因为问题在别处。@morels,怎么会这样?如果最后一个框有值,它将创建一个新框,否则它将不会创建新框。@morels,它不会。看到这一点:OP仍然需要$watch
推送新框的$scope.box
。您可能是指如果($scope.box[$scope.box.length-1]。输入!==“”)
@kkkk您找到了它@Dev One现在ng blur
处于未使用状态,因为问题在别处。@morels,怎么会这样?如果最后一个框有值,它将创建一个新框,否则它将不会创建新框。@morels,它不会。看到这个:OP仍然需要$watch
这个$scope.box
来推一个新的框。
<td><input type="text" ng-model="box.input" ng-blur="newBox()"></td>