我有3行,每行有13个输入字段。 所有遵循规则的都有类似的模型:
第一行: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]
进行访问,但它说“字段”未定义。
以下是我试图从AngularJS控制器访问它的方法:
angular.module("myModule")
.controller("myModuleController", ["$scope","$http", function($scope,$http) {
console.log($scope.field[1][2]);
}]);
我是AngularJS的新人,感谢您的耐心等待。
答案 0 :(得分:0)
访问该方式应该没有问题。也许你在其他地方有一些错误。
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'}
]
]
}
&#13;
<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>
&#13;
答案 1 :(得分:0)
好吧,我发现问题是有人需要知道的。
基本上,为了使输入数组在$scope
内,需要使用ng-repeat
进行循环。因此,即使您将ng-model
指令提供给输入,它也不会知道它,因为它没有被AngularJS处理。
结论:您不能以这种方式读取输入数组。我通过提供动态ID(例如field-1-6
然后使用:
angular.element("#myApp").find("#field-" + firstIndex + "-" + secondIndex );
在我看来,只需重做代码并使其由角度生成就好得多。在我的情况下,它无法完成,因为客户端并不希望升级该代码。所以,如果你在我的情况下,这是一个很好的解决方法。
)
答案 2 :(得分:0)
不幸的是,您更新了问题的代码未显示
<input ng-model='field[1][6]' type='text' />
可能意味着不同的事情。
没有上下文角度会像这样http://jsfiddle.net/3tsw98yf/
读取它那是你在找什么?