2017-09-06 44 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;  
    };