Angularjs 角度1.6-如果不是物体,防止ng重复?

Angularjs 角度1.6-如果不是物体,防止ng重复?,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,在我的代码中,我从服务器接收到一个信息并将其呈现给用户。问题是,这些信息可以是字符串,也可以是对象。如果数据是一个字符串,它仍然会显示,但angular正在尝试迭代该字符串,如果存在“重复键”,则会抛出错误。如果所讨论的变量是纯字符串,是否有选项防止angular运行ng repeat? 在以下示例中,$ctrl.details可以是对象或字符串。如果是字符串,我只想在内部显示它,而不启动ng repeat循环。 HTML: <div ng-repeat="details

在我的代码中,我从服务器接收到一个信息并将其呈现给用户。问题是,这些信息可以是字符串,也可以是对象。如果数据是一个字符串,它仍然会显示,但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>

{{::details.title}
  • {{::value.title}

更喜欢用Javascript而不是标记解决问题:

...
if (angular.isString(vm.details)) {
  vm.strDetails = vm.details;
  vm.details = [];
} else {
  vm.strDetails = '';
}

{{$ctrl.strDetails}}
<div ng-repeat="details in $ctrl.details">
。。。
if(角度isString(虚拟细节)){
vm.strDetails=vm.details;
vm.details=[];
}否则{
vm.strDetails='';
}
{{$ctrl.STRDEAILS}