Angularjs 重复if数组,显示if字符串
我在控制器中引用的值可能是字符串或数组。如果它是一个数组,我想使用“ng repeat”(可能)来列出我的项目 如果是字符串,我只想显示字符串 比如:Angularjs 重复if数组,显示if字符串,angularjs,Angularjs,我在控制器中引用的值可能是字符串或数组。如果它是一个数组,我想使用“ng repeat”(可能)来列出我的项目 如果是字符串,我只想显示字符串 比如: <div> {{if is array}} <span ng-repeat="v in myvalue">{{v}}</span> {{else}} {{myvalue}} {{endif}} </div> {{if is array}}
<div>
{{if is array}}
<span ng-repeat="v in myvalue">{{v}}</span>
{{else}}
{{myvalue}}
{{endif}}
</div>
{{if is array}}
{{v}
{{else}
{{myvalue}}
{{endif}}
我想知道在Angularjs中是否有一种优雅的方式可以做到这一点,但我还不熟悉
谢谢在控制器上执行逻辑(为数组和字符串分配不同的变量)-然后在视图中执行哑逻辑:
if (Array.isArray($scope.myvalue)) {
$scope.myArray = $scope.myvalue;
} else {
$scope.myString = $scope.myvalue;
}
那景色呢
<div>
<div ng-if="myArray">
<span ng-repeat="v in myArray">{{v}}</span>
</div>
<div ng-if="myString">
{{myString}}
</div>
</div>
{{v}
{{myString}}
在控制器上执行逻辑(为数组和字符串分配不同的变量)-然后在视图中执行哑逻辑:
if (Array.isArray($scope.myvalue)) {
$scope.myArray = $scope.myvalue;
} else {
$scope.myString = $scope.myvalue;
}
那景色呢
<div>
<div ng-if="myArray">
<span ng-repeat="v in myArray">{{v}}</span>
</div>
<div ng-if="myString">
{{myString}}
</div>
</div>
{{v}
{{myString}}
有一种方法。你可以用这个。您需要将其放置在范围或vm中:
$scope.isArray = angular.isArray
和HTML格式
<span ng-repeat="v in myvalue" ng-if="isArray(myvalue)">{{v}}</span>
<span ng-if="!isArray(myvalue)">{{myvalue}}</span>
{{v}
{{myvalue}}
如果您在多个地方使用它,最好是使用一个指令。有一种方法。你可以用这个。您需要将其放置在范围或vm中:
$scope.isArray = angular.isArray
和HTML格式
<span ng-repeat="v in myvalue" ng-if="isArray(myvalue)">{{v}}</span>
<span ng-if="!isArray(myvalue)">{{myvalue}}</span>
{{v}
{{myvalue}}
如果您在多个地方使用它,最好是使用一个指令。制作一个简单的getter
$scope.getVal = function( vals ){
if(Array.isArray(vals)) return vals
else return [ vals ]
}
如果和ng repeat,则只需像平常一样使用中继器,而不是ng
<div ng-repeat="val in getVal(vals)"> {{ val }} </div>
{{val}
做一个简单的getter
$scope.getVal = function( vals ){
if(Array.isArray(vals)) return vals
else return [ vals ]
}
如果和ng repeat,则只需像平常一样使用中继器,而不是ng
<div ng-repeat="val in getVal(vals)"> {{ val }} </div>
{{val}
插值中的if
有什么用?这是如何产生预期输出的?@charlietfl Angular可以插值条件。@jusopi很好,但不会以这种方式产生预期结果。。。在editagreed同意后,现在是这样了,加上他修改了他的答案,所以现在这是一个没有意义的点。所有伟大的答案我都同意,但这对我来说是最好的解决方案。插值中的if
有什么用?这是如何产生预期输出的?@charlietfl Angular可以插值条件。@jusopi很好,但不会以这种方式产生预期结果。。。在Editz同意后,现在是这样了,加上他修改了他的答案,所以现在这是一个没有意义的问题。所有伟大的答案在我看来都是最好的解决方案,但这对我的具体情况来说是一个细微的差别,在我的具体情况下,这是行不通的,但我可以看到其他人会怎样。UPVOTE你能解释一下细节吗?我实际上是在用另一个元素包装数组元素,这个元素不会与字符串值一起出现,因为还有其他用户与数组创建的元素交互。啊,好的,我明白了。在这种情况下,我会通过过滤器驱动它,并使用ng if。我真的不喜欢在控制器中添加这种逻辑。在我的特定情况下,这种逻辑是不起作用的,但我可以看出在其他情况下是如何起作用的。UPVOTE你能解释一下细节吗?我实际上是在用另一个元素包装数组元素,这个元素不会与字符串值一起出现,因为还有其他用户与数组创建的元素交互。啊,好的,我明白了。在这种情况下,我会通过过滤器驱动它,并使用ng if。我真的不喜欢在控制器中添加这种逻辑。