当项目被推入数组时,我尝试生成新表单。 表单始终相同,只是将条件计数增加一个。
这样的事情:
<span ng-show="companydata.selectedloc.length == 0">
<div angucomplete-alt id="ex1"
selected-object="selectedLocation"
></div>
</span>
<span ng-show="companydata.selectedloc.length == 1">
<div angucomplete-alt id="ex1"
selected-object="selectedLocation"
></div>
</span>
<span ng-show="companydata.selectedloc.length == 2">
<div angucomplete-alt id="ex1"
selected-object="selectedLocation"
></div>
</span>
每个代码块都会在select上将项目推送到 companydata.selectedloc (它是自动完成选择输入)。
这是JS的功能:
$scope.selectedLocation = function(selected){
$scope.companydata.selectedloc.push(selected)
}
总是使用相同的代码块,是否有一些方法比手动增加条件并根据需要添加尽可能多的代码块(最多10个)更优雅?
答案 0 :(得分:1)
您应该利用Angular的内置ng-repeat directive。
这是一个有效的Fiddle
请注意,在小提琴中,我添加了track by $index
,因为我不知道您的selected
值是多少。请注意,$ index跟踪有权衡,但有时需要防止Angular抛出欺骗错误。
从小提琴中,我宣布companydata
变量如此:
$scope.companydata = {
selectedloc: [] // Initialized with an empty array
}
如果您希望预先填充它,那很简单:
$scope.companydata = {
selectedloc: [0, 1, 2] // Initialized with valu(es) as needed
}
有关更详细的示例,请参阅此updated Fiddle,我已使用模拟&#34; location&#34;更新了该示例。对象。
<span ng-repeat="loc in companydata.selectedloc">
<div angucomplete-alt id="ex1"
selected-object="selectedLocation"
></div>
</span>