AngularJS -访问一个带有ng-model动态名称的输入数组
AngularJS - Accessing to an input array with ng-model dynamic name
我有3行,每行有13个输入字段。所有的规则都有一个ng模型,如:
第一行:field[1][{1-13}]
第二行:field[2][{1-13}]
第三行:field[3][{1-13}]
因此,如果我想访问第一行和字段#6,我像$scope.field[1][6]
那样做。问题是我不能像这样访问字段。
这是输入的HTML:
<input ng-model='field[1][6]' type='text' />
我试图通过使用:$scope.field[1][6]
访问,但它说"field"是未定义的。
这是我如何试图从我的AngularJS控制器访问它:
angular.module("myModule")
.controller("myModuleController", ["$scope","$http", function($scope,$http) {
console.log($scope.field[1][2]);
}]);
- 这些字段是在DOM加载时创建的,由于一些更深层次的因素,它们不能用ng-repeat生成。
我是AngularJS的新手,谢谢你的耐心。
这样访问应该没有问题。可能您在其他地方有错误。
angular.module('test', [])
.controller('Test', Test);
function Test($scope) {
$scope.fields = [
[
{name: '1-1'},
{name: '1-2'},
{name: '1-3'}
],
[
{name: '2-1'},
{name: '2-2'}
],
[
{name: '3-1'}
]
]
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<div ng-app='test' ng-controller='Test'>
<div ng-repeat='(i, lv1) in fields'>
<div ng-repeat='(j, lv2) in lv1'>
<input type='text' ng-model='lv2.name'>
<input type='text' ng-model='fields[i][j].name'>
</div>
</div>
<div>
<input type='text' ng-model='fields[1][1].name'>
</div>
</div>
好了,我找到了问题所在,以防有人需要知道。基本上,为了使输入数组在$scope
中,它需要与ng-repeat
循环。所以,即使你把ng-model
指令给了输入,它也不会知道它,因为它没有被AngularJS处理过。
结论:不能这样读取输入数组。我通过给出一个动态ID来解决这个问题,比如field-1-6
,然后使用:
angular.element("#myApp").find("#field-" + firstIndex + "-" + secondIndex );
在我看来,重做代码并让它由angular生成要好得多。在我的例子中,这是不可能的,因为客户端不想升级这段代码。所以,如果你是在我的情况下,这是一个很好的变通办法。
。
你已经更新了你的问题不幸的代码不显示
- 如何初始化$scope。字段
- 如何使用它在ng-repeat
<input ng-model='field[1][6]' type='text' />
可以根据前两点表示不同的含义。
如果没有上下文,angular会这样读http://jsfiddle.net/3tsw98yf/
这是你想要的吗?
相关文章:
- 从 Javascript 中设置 ng-model name
- 在Angularjs中,我如何使用ng repeat、ng model和ng click来动态更改内容
- 如何在 AngularJS 中使用 ng-repeat 动态生成 ng-model=“my_{{$index}}”
- 在 AngularJS 中动态生成 ng-model
- AngularJS - 在带有重复和动态 html 控件的指令中使用 ng-model
- 无法在选择下拉菜单中使用动态生成下拉菜单ng-model设置默认选项
- 使用angularJS的ng-repeat和ng-model进行动态多列过滤
- 动态的ng-model变成ng-repeat AngularJS
- AngularJS -访问一个带有ng-model动态名称的输入数组
- 动态更改ng-bind和ng-model
- ng-repeat中的动态ng-model名
- 动态复选框不能与ng-model正确绑定
- AngularJS: ng-model动态绑定不起作用
- 用ng-model动态禁用一个span
- Angular js动态地指定ng-model,并返回该文本框的值
- 在AngularJS中动态设置ng-model value为js变量的值
- 使用 jquery 将 ng-model 动态添加到输入框属性
- Ng-model不支持动态添加的html控件
- 如何动态设置ng-model
- Angular ng-repeat with bootstrap输入复选框,动态ng-model使用ng-true-va