2017-09-06 46 views
0

有一个在我的应用程序就像一个图表,angularjs如何通过元素属性NG-显示功能

<canvas id="line" class="chart chart-line" height="250" width="{{width_chart}}" chart-data="data" chart-labels="labels" chart-series="series" chart-options="options" chart-colors="colors" chart-dataset-override="datasetOverride" chart-click="onClick" ng-show="isChecked()"> </canvas> 

而且在器isChecked功能我想这个帆布这是“行”,在这种情况下ID 。然后我想在一个$ scpoe.array中检查这个ID的存在,并且基于存在我想返回true或false来使图表显示/隐藏。

$scope.isChecked = function() { 
console.log('i am in isChecked function'); 
console.log(this); 
     // some code 
     return true;  
    }; 

我的问题是我不能够通过任何手段来获得在功能上的ID。 “这个”也不起作用。我尝试了下面提到的指令方式,但那也不起作用。

Pass element using ng-show AngularJS

请帮助。

+2

'ng-show =“isChecked('line')”''? –

+0

您可以通过参数将'line'传递给该函数。 –

+0

是否只有一个画布? – Rakeschand

回答

0

你可以得到的ID如下所示:

<div id="line" ng-click="ShowId($event)" ng-show="isChecked"></div> 

$scope.ShowId = function(event){ 
    var id = event.target.id; 
    if(id == 'line'){ 
     $scope.isChecked = true; 
    } 
}; 

或者:

<div id="line" ng-click="ShowId($event)" ng-show="isChecked('line')" 

$scope.isChecked = function(id){ 
     if(id == 'line'){ 
      return true; 
     }else{ 
      return false; 
     } 

    } 

如果你正在从另一个ng-repeat或一些其他阵列只是把它作为一个model

+0

将无法​​正常工作,因为1.我无法将“行”作为硬代码值传递到函数,并且2.图表上没有发生点击会显示/隐藏。 – sand

+0

@sand如果id不是硬编码你怎么得到的? –

+1

如果你从另一个ng-repeat或其他数组中获取它,只需将它作为模型 –

0

ng-click="isChecked('line')"

在angularjs

$scope.isChecked = function(id) { 
console.log(id); 

     // some code 
     return true;  
    };