我在HTML中有以下代码:
<div class="col-sm-9">
<span class="col-sm-9" ng-repeat="app1 in allDesc[$index]"> {{app1}}</span>
<label ng-repeat="app2 in allValues[$index]"><input type="text" class="form-control ng-pristine ng-valid ng-valid-required" style="width: 30%" ng-model="app2" ng-disabled="app2" id="inputPassword1" required="" disabled="disabled"></input>
</label>
</div>
<div>
问题是所有的span元素都是一个接一个地写的,所以输入元素也是如此。我希望每个跨度都打印在输入附近。
我还尝试以下方法:
<div class="col-sm-9">
<span class="col-sm-9" ng-repeat="app1 in allDesc[$index]"> {{app1}}
<label ng-repeat="app2 in allValues[$index]"><input type="text" class="form-control ng-pristine ng-valid ng-valid-required" style="width: 30%" ng-model="app2" ng-disabled="app2" id="inputPassword1" required="" disabled="disabled"></input>
</span>
</label>
</div>
<div>
但是它只打印allDesc的第一个值。
如何使用ng-repeat
?
答案 0 :(得分:1)
如果allDesc
和allValues
数组的长度相同,则只应为ng-repeat
或allDesc
项创建一个带allValues
指令的容器,然后使用$index
绑定到不用于ng-repeat
的数组中的项目。以下是allDesc
中使用ng-repeat
的示例代码:
<div class="col-sm-9">
<div ng-repeat="desc in allDesc">
<span class="col-sm-9">{{desc}}</span>
<input type="text" class="form-control" ng-model="allValues[$index]"/>
</div>
</div>
fiddle使用此代码
答案 1 :(得分:0)
也许这个fiddle就是你所追求的?
问题的症结在于数据的格式化方式。创建一个新模型,并在上面的位置进行ng重复将有所帮助。
var test = {};
test.span = 'a';
test.input = '1';
var models.push(test);
答案 2 :(得分:0)
</input>
这不是有效的HTML。 <input>
没有结束标记。至于你的问题在这里fiddle。这应该会让你走上正确的道路。
<div ng-app="orSmith" ng-controller="ExampleController">
<label ng-repeat="item in allValues">{{item}}
<input type="text" class="form-control ng-pristine ng-valid ng-valid-required" style="width: 30%" ng-model="app2" ng-disabled="app2" id="inputPassword1" required="" disabled="disabled" />
</label>
</div>
angular.module('orSmith', [])
.controller('ExampleController', function ($scope) {
$scope.allValues = ['a', 'b', 'c', 'd'];
$scope.allDesc = ['test', 'test2'];
});