如何在Angular JS中点击节点多次调用指令?

时间:2014-10-28 20:34:06

标签: javascript jquery angularjs node.js angularjs-directive

我正在使用自定义指令来刷新我的页面。我用D3编写了我的UI。它是一个由节点和链接组成的简单图形。

这是我想要做的。 当我点击图表的特定节点时,它会扩展到子图表,依此类推。

以下是控制器

*vrmUI.controller('CompleteViewController', function($scope,$location, $rootScope, $route) {
    // Assigning data 
    // onDeviceClick is called when node of graph is clicked. 


    $scope.onDeviceClick = function(item){
        $rootScope.pageContextObject = $route.current.data;
        $scope.clickedItem=item;
        $scope.completeObject =//JSON Data
        $scope.loadExpandedView=true;
        $scope.showExpandedView=true;
    };*

});

对应的html是

<div class="content-panel clearfix">

    <div id="topoheader" style="font:12px sans-serif"></div>
        // expandedView directive should get called when ever control goes inside onDeviceClick.

        <expanded-view ng-show="showExpandedView"
            ng-if="loadExpandedView" clicked-rack="clickedItem"  network-data="completeObject"
            device-click="onDeviceClick(item)"></expanded-views>    
    </div>
</div>

单击图形节点时调用设备单击。 指令是 *

vrmUI.directive('expandedView',function(){ 
    function link(scope,el,attr){
     // Processing when clicked
    }
    return{
        restrict : 'E',
        link: link,
        scope : {
            clickedItem : '=',
            onDeviceClick : '&deviceClick'
        }
    };
});

*

问题:

当我点击一次它完美地工作但是当我点击图形的其他节点时,我可以看到控制进入$ scope.onDeviceClick = function(item){但我的指令没有像第一种情况那样被调用。无论如何,我能做到这一点吗?如果您需要更多详细信息或问题不清楚,请告诉我。

由于

1 个答案:

答案 0 :(得分:1)

尝试将以下行添加到$scope.onDeviceClick函数的开头:

$scope.loadExpandedView=false;
$scope.showExpandedView=false;