0

私はmd-optionを持っています。 md-optionタグには、定義されている関数を指すng-clickがあります。問題は、リストからオプションをクリックすると決して機能しないように思えることです。AngularJS ng-clickが動作しないようです

は、ここに私のhtmlです:

<div class="panel-body"> 
      <md-select placeholder="{{getIntervalName()}}" ng-model="intervalSelected"> 
      <md-option ng-repeat="item in intervals" value="{{item.name}}" ng-click="changeInterval(item)"> 
       {{item.name}} 
      </md-option> 
      </md-select> 
      <div style="overflow: auto;"> 
       <div id="parentDivChart" style="{{changeWidth()}};height:400px"> 
        <canvas id="bar" class="chart chart-bar" chart-data="datta" 
         chart-labels="labels" chart-options="myoptions" chart-legend="legend"> 
        </canvas> 
       <div tc-chartjs-legend chart-legend="legend"></div> 
       </div> 
       </div> 
      </div> 

そして、これは、コントローラで定義された私の関数である。

function changeInterval(item) { 
        console.log("change intervaaaalll"); 
        $scope.default_interval ="day"; 
        intrvl = item.value; 
        setItem("interval", item.value); 
        $scope.loadChart(); 
       }; 

それはコンソール何も書き込みません、それはそれは私の機能に到達しないことを意味します。なぜ誰かがアイデアを持っていますか?

ありがとうございます!

+0

私は 'changeInterval'はプライベート関数だと思います。これを試してください$ scope.changeInterval = function(){...} ' –

答えて

0

あなたは、コードを提供した場合ここでコントローラを作成します。 はしかし、私はあなたがこの方法でメソッドchangeInterval(item)を作成すべきだと思う:

var nameOfYourApp = angular.module(‘nameOfYourApp’, []); 
nameOfYourApp.controller('nameOfYourController', function($scope) { 
      $scope.changeInterval = function(item) { 
        console.log("change intervaaaalll"); 
        $scope.default_interval ="day"; 
        intrvl = item.value; 
        setItem("interval", item.value); 
        $scope.loadChart();  
      } 
}); 

は、この情報がお役に立てば幸い!

0

あなたは次のようにスコープに追加する必要がスコープにchangeIntervalメソッドを使用したいと"$scope.changeInterval=function (item) {...};"

0

あなたのコントローラで"$scope.changeInterval=changeInterval;"

または

使用を書く:

コントローラ内:

$scope.changeInterval(item) { 
        console.log("change intervaaaalll"); 
        $scope.default_interval ="day"; 
        intrvl = item.value; 
        setItem("interval", item.value); 
        $scope.loadChart(); 
       }; 

$ scopeをコントローラの依存関係として含めることを忘れないでください。

例えば:

app.controller('myCtrl', function($scope) { 

}); 

今changeInterval機能は、それがビューに呼び出すことができる範囲を変数に代入されます。

0

changeInterval()はコントローラのプライベート関数なので、アクセスすることはできません。パブリックにする必要があります(コントローラの変数にバインドします)。

あなたは、このアプローチで行く必要があります。

$scope.changeInterval = changeIntervalapproach; 

あなたはcontrollerAsとビューモデルのアプローチを使用している場合は、次に使用:

それはもっと良かったはず
vm.changeInterval = changeInterval; 
関連する問題