Angular JS:我如何懒惰加载我的指令?

时间:2016-03-01 16:09:52

标签: javascript angularjs angularjs-directive angularjs-scope angularjs-controller

我的html结构如下所示

main.html中

    <div class="row">
        <div class="col-xs-9" id="myResultPage">

                      <!-- Code for service call to get the results and render it back -->

          </div>

          <div class="cols-xs-3">
                 <div right-corner></div> //Calls the directive here
         </div>

**right-corner.html**

<div class="col-xs-3">
    <!-- Code for directive html -->

</div>

**right-corner.js**
(function() {
    angular
    .module("myApp")
    .directive("rightCorner", rightCornerDirective)

function rightCornerDirective() {
         return { 
                  //Directive controller code goes here
           };

}

在这种情况下,我的rightCornerDirective只需在div id =&#34; myResultPage&#34;之后加载。得到渲染。它可以同时渲染。我该怎么做?

1 个答案:

答案 0 :(得分:0)

没有给出足够的信息来真正给出完整答案,但使用ng-if应解决问题

<div ng-if="someVar" right-corner></div>

收到其他元素的数据时设置$scope.someVar = true

如果需要更多时间来允许其他渲染,您也可以这样做:

$timeout(function(){
   $scope.someVar = true;
})

这会将ng-if推到摘要周期的末尾。请记住在控制器中注入$timeout