Angularjs angular js指令的编译或链接函数中的条件逻辑?

Angularjs angular js指令的编译或链接函数中的条件逻辑?,angularjs,angularjs-directive,angularjs-scope,Angularjs,Angularjs Directive,Angularjs Scope,我在$scope中有一个名为data的JSON对象。对象有一个名为items的成员,该成员可以是对象或对象数组。因此,我不能使用ng repeat: <ul> <li ng-repeat="item in data.items"> <item data="item"></item> </li> </ul> 但这不起作用,我想是因为我需要isObject的参数,并且定义为可以解析的表达式,但是

我在
$scope
中有一个名为
data
的JSON对象。对象有一个名为
items
的成员,该成员可以是对象或对象数组。因此,我不能使用ng repeat:

<ul>
    <li ng-repeat="item in data.items">
        <item data="item"></item>
    </li>
</ul>
但这不起作用,我想是因为我需要isObject的参数,并且定义为可以解析的表达式,但是将参数包装在
{{}}
中只会导致语法错误


然后我想我可以创建一个指令来检查项目并修改compile函数中的template元素,但是这需要访问$scope上的数据,而compile函数没有这些数据。我认为链接功能修改模板已经太迟了?

您可以这样做:


我不得不添加
,但它起了作用。好的,我已经做了一个更新,如果data.items也未定义,它应该可以工作
<span ng-if="angular.isObject(data.items)">
    <span ng-if="angular.isDefined(data.items)">
          <item data="data.item"></item>
    </span>
</span>