角度.js复制文本框数组行中的值
Angular.js copy values in row of textbox array
我有一行输入文本框。我想引入以下功能。
a) 如果我在第一个输入中输入一个值,该值应该会自动复制/更新到下一个所有文本框。即 2 到 10
b) 假设我在第 5 个框中输入/更新一个值,该值必须自动复制/更新为 6、7,8、9、10,而不是 4,3,2,1。
在 Angular.js 中如何以及实现这一目标的最简单方法是什么?
示例行
获取 ngChange 中的值并更新后续输入值。下面是示例。
angular
.module('exampleApp', [])
.controller('ExampleController', ExampleController);
function ExampleController() {
var vm = this;
vm.inputValues = [
[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4]
];
vm.updateSubsequentInputs = function(idx, row, value) {
for (var i = idx; i < row.length; i++) {
row[i] = value;
}
}
}
<!DOCTYPE html>
<html ng-app='exampleApp'>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.5/angular.min.js"></script>
</head>
<body ng-controller="ExampleController as vm">
<table>
<tr ng-repeat="inputRow in vm.inputValues">
<td ng-repeat="inputValue in inputRow track by $index">
<input ng-model="inputValue" ng-change="vm.updateSubsequentInputs($index, inputRow, inputValue)">
</td>
</tr>
</table>
</body>
</html>
它的工作,试试吧
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.myNumbers = [ {value: 1,index: 1}, {value: 2,index: 2}, {value: 3,index: 3}, {value: 4,index: 4}, {value: 5,index: 5}, {value: 6,index: 6}, {value: 7,index: 7}, {value: 8,index: 8} ];
$scope.testFn=function(val,ind){
for (var i in $scope.myNumbers) {
if ($scope.myNumbers[i].index > ind) {
$scope.myNumbers[i].value = val;
}
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="plunker" ng-controller="MainCtrl">
<p>Hello {{name}}!</p>
<div ng-repeat="num in myNumbers">
<input type="text" ng-model="num.value" ng-change="testFn(num.value,num.index)">
</div>
</body>
这是一个更干净的版本:
(function() {
"use strict";
angular.module('app', [])
.controller('mainCtrl', function($scope) {
$scope.values = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"];
$scope.change = function(index) {
$scope.values = $scope.values.slice(0, index).concat(Array($scope.values.length - index).fill($scope.values[index]));
}
});
})();
<html ng-app="app">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script>
</head>
<body ng-controller="mainCtrl">
<table>
<tr>
<td ng-repeat="value in values track by $index">
<input type="text" size="1" ng-model="values[$index]" ng-change="change($index)">
</td>
</tr>
</table>
</body>
</html>
相关文章:
- 在数组JS中查找三个重复项
- 比较二维数组js
- 从数组(JS)中的对象调用函数
- 检查对象是否已被推入数组 Js
- 将CSV文件转换为JSON数组JS
- 解析多维数组JS的数组并记录索引
- 如何遍历直接传递到灰尘的数组.js
- 如何使用 D3 选择 JSON 数组.js 使用 .算子
- JavaScript 变量中的 PHP 数组 - JS 元素
- 将数据复制到 JavaScript D3 中的数组.js然后绘制散点图
- 基于数组JS中的值创建按钮
- 创建数组JS
- 按频率排序子字符串数组-JS
- 将数组js变量传递给php
- 使用不带嵌套循环的数组过滤对象数组js
- 创建封装数组JS
- 创建多dim数组(JS)
- 创建for循环对象并将它们压入数组js中
- 将数组JS中的所有项相乘
- 如何从二维数组(JS)中获取网格的坐标