在我的代码中,我从服务器接收了一些信息,并将其提供给用户。事实是,信息可以是字符串或对象。如果数据是字符串,它仍然会显示,但是angular会尝试在该字符串上进行迭代,如果有“重复的键”,则会引发错误。如果有问题的变量是纯字符串,是否可以防止angular运行ng-repeat
?
在以下示例中,$ctrl.details
可以是对象或字符串。如果它是一个字符串,我只想在其中显示它,而无需启动ng-repeat
循环。
HTML:
<div ng-repeat="details in $ctrl.details">
<strong>{{:: details.title}}</strong>
<ul>
<li ng-repeat="value in details.detailsRows">
<strong>{{:: value.title}}</strong>
<a ng-href="{{:: value.value }}" ng-if="value.isLink" target="_blank">{{:: value.value }}</a>
<img ng-src="{{:: value.value }}" ng-if="value.isImage" />
</li>
</ul>
</div>
答案 0 :(得分:1)
比用标记,更喜欢用Javascript解决问题:
...
if (angular.isString(vm.details)) {
vm.strDetails = vm.details;
vm.details = [];
} else {
vm.strDetails = '';
}
{{$ctrl.strDetails}}
<div ng-repeat="details in $ctrl.details">