我是角色新手,正在寻找一种方法来获取表格中的每个名称,并以每个字母出现在其自己的<input>
标签中的方式打破名称。因此,如果表格单元格包含名称&#34; Dave&#34;,并且用户点击了&#39; D&#39;,则仅包含此字母的输入标记为&#34;已选择&#34;。
这是行和表格单元格:
<tr ng-repeat="name in data">
<td class="name"><input type="text" ng-model="user_name"></td>
</tr>
请提供任何帮助或指导?
更新
我真正拥有它的两个ng-repeat用于创建表格。该表有3列:user_name,script_name和cron_format。我希望最终用户能够更改的唯一部分是cron格式,但我想以一种方式打破cron_format,如果用户点击了&#34;分钟&#34;值,该值将是唯一标记的而不是所有cron_format ... 这是表:
<tbody ng-repeat="(user_id,row) in data">
<tr ng-repeat="(script_id, cron_format) in row" ng-init="oldCron = cron_format">
<td class="userName">{{user(user_id)}}</td>
<td class="scriptName">{{script(script_id)}}</td>
<td class="cronFormat">
<input type="text" ng-model="cron_format" ng-blur="saveCron(user_id,script_id,cron_format,oldCron)"/></td>
</td>
</tr>
</tbody>
答案 0 :(得分:0)
这是一个更完整的实现。您的数据来自范围对象$scope.data
。此对象包含一个对象数组,表示“人员”,其中包含“名称”的键。此实现包括范围函数$scope.letters
,它将名称字符串分解为各自的单个字符。
HTML:
<div ng-app="myApp">
<div ng-controller="MyCtrl">
<table>
<tr ng-repeat="person in data">
<td class="name">
<input type="text" ng-repeat="letter in letters(person.name) track by $index" value="{{letter}}">
</td>
</tr>
</table>
</div>
</div>
JavaScript的:
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', ['$scope', function ($scope) {
$scope.data = [
{name:'Jim'},
{name:'Dave'},
{name:'Chelsea'}
];
$scope.letters = function(rawname) {
var lettersarray = rawname.split('');
return lettersarray;
};
}]);
*注意,任何包含重复字符的名称都需要track by $index
(例如'Bill')