angularjs 如何将元素属性传递给 ng-show 函数

angularjs how to pass element properties to ng-show function

我的应用程序中有一张图表,

<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 函数中,我想获取此 canvas 的 ID,在本例中为 "line"。然后我想检查这个 ID 在一个 $scpoe.array 中是否存在,并根据存在我想 return true 或 false 来制作图表 show/hide.

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

我的问题是我无法通过任何方式获得 ID 的功能。 "this" 也不起作用。我尝试了下面提到的指令方式,但这也不起作用。

请帮忙。

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

在angularjs

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

      // some code
      return true;    
  };

您可以像下面这样获取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 传递即可。