我正在使用自定义指令来刷新我的页面。我用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){但我的指令没有像第一种情况那样被调用。无论如何,我能做到这一点吗?如果您需要更多详细信息或问题不清楚,请告诉我。
由于
答案 0 :(得分:1)
尝试将以下行添加到$scope.onDeviceClick
函数的开头:
$scope.loadExpandedView=false;
$scope.showExpandedView=false;