Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度1:如何从视图控制器向DOM添加指令_Angularjs_Angular Ui Bootstrap - Fatal编程技术网

Angularjs 角度1:如何从视图控制器向DOM添加指令

Angularjs 角度1:如何从视图控制器向DOM添加指令,angularjs,angular-ui-bootstrap,Angularjs,Angular Ui Bootstrap,有条件地添加自定义指令的推荐方法是什么?似乎没有一篇谷歌帖子能真正回答我的问题 该应用程序允许用户显示客户信息并与之交互。在一个视图中,用户可以单击订单详细信息,从而进行API调用以返回数据。如果订单以某种类型返回,我想在已经呈现的侧边栏中添加一个指示符。这似乎是一个非常简单和常见的用例,所以我想知道我遗漏了什么 我用的是角度1.4x, 角自举 这是一个大型应用程序,但下面是一个相关代码的人为示例: sidebar.html-API调用之前: <div> <a href="#

有条件地添加自定义指令的推荐方法是什么?似乎没有一篇谷歌帖子能真正回答我的问题

该应用程序允许用户显示客户信息并与之交互。在一个视图中,用户可以单击订单详细信息,从而进行API调用以返回数据。如果订单以某种类型返回,我想在已经呈现的侧边栏中添加一个指示符。这似乎是一个非常简单和常见的用例,所以我想知道我遗漏了什么

我用的是角度1.4x, 角自举

这是一个大型应用程序,但下面是一个相关代码的人为示例:

sidebar.html-API调用之前:

<div>
 <a href="#/customer">Customer Info</a>
 <a href="#/orders" id="ordertype"></a>
 <a href="#/notes">Notes</a>
</div>
<div>
 <a href="#/customer">Customer Info</a>
 <a href="#/orders" id="ordertype">
  <order-type-directive uib-tooltip="Phone Order" tooltip-trigger="mouseenter" tooltip-placement="top"/>
 </a>
 <a href="#/notes">Notes</a>
</div>
所以我可以做一个指示:

.directive('orderTypeDirective', function(){
  ...
})
或者我可以这样做:

var el = angular.element('#orderType')
.html('<span uib-tooltip="Phone Order" popover-trigger="mouseenter"></span>');
var aNewScope = $scope.$new();
$compile(el)(aNewScope)

但我知道一定有更好、更“有角度”的方法,我缺少了一些引人注目的东西。

您是否尝试过使用
ng if
指令?比如:

<div>
 <a href="#/customer">Customer Info</a>
 <a href="#/orders" id="ordertype">
  <order-type-directive uib-tooltip="Phone Order" 
                        tooltip-trigger="mouseenter" 
                        tooltip-placement="top" 
                        data-ng-if="mainCtrl.orderType && mainCtrl.orderType.length>0"/>
 </a>
 <a href="#/notes">Notes</a>
</div>


或者您可以在您的
ng if
指令中添加任何其他条件,这些条件可能与您的案例非常匹配

您是否尝试过使用
ng if
指令?比如:

<div>
 <a href="#/customer">Customer Info</a>
 <a href="#/orders" id="ordertype">
  <order-type-directive uib-tooltip="Phone Order" 
                        tooltip-trigger="mouseenter" 
                        tooltip-placement="top" 
                        data-ng-if="mainCtrl.orderType && mainCtrl.orderType.length>0"/>
 </a>
 <a href="#/notes">Notes</a>
</div>

或者,如果指令符合您的情况,您也可以在指令中添加任何其他条件

<div>
 <a href="#/customer">Customer Info</a>
 <a href="#/orders" id="ordertype">
  <order-type-directive uib-tooltip="Phone Order" 
                        tooltip-trigger="mouseenter" 
                        tooltip-placement="top" 
                        data-ng-if="mainCtrl.orderType && mainCtrl.orderType.length>0"/>
 </a>
 <a href="#/notes">Notes</a>
</div>