2016-12-15 182 views
2

我有一個directive..i想用在那裏我有我的定義指令的模板的地方指令的鏈接函數中定義的函數內部無法調用函數上的NG-點擊鏈接功能

app.js

angular.module('app',[]) 
 
\t .controller('appCtrl', function($scope){ 
 
\t \t $scope.name = "Vikram Prasad"; 
 
\t }) 
 

 
\t .directive('directive', function(){ 
 
\t \t return{ 
 
\t \t \t restrict:'A', 
 
\t \t \t templateUrl:'button.html', 
 
\t \t \t link:function(elems, attrs, scope){ 
 

 
\t \t \t \t scope.index=0; 
 
\t \t \t \t scope.colors = ['red','blue','green','orange','brown']; 
 
\t \t \t \t scope.color = scope.colors[scope.index]; 
 

 
\t \t \t \t scope.changeColor = function(){ 
 
\t \t \t \t \t console.log('clicked'); 
 
\t \t \t \t \t if(scope.index>scope.colors.length){ 
 
\t \t \t \t \t \t scope.index = 0; 
 
\t \t \t \t \t } 
 
\t \t \t \t \t scope.color = scope.colors[scope.index]; 
 
\t \t \t \t \t scope.index++; 
 
\t \t \t \t }; 
 
\t \t \t } 
 
\t \t } 
 
\t });

指令模板

<div class="button" ng-class="color" ng-click="changeColor()">Click Me</div>

的模板上的NG-單擊不響應點擊。 我在這裏做錯了什麼?

+0

您如何使用這個指令? – Viplock

回答

2

你錯誤地在link函數參數中,scope排在第一位。

link:function(elems, attrs, scope){ 

應該

link:function(scope, elems, attrs){ 
+0

謝謝先生..這個層次結構背後的概念先生? –

+0

@VikramPrasad請不要打電話給先生,您的意思是*這個層次背後的概念*? –

+0

當我把範圍寫成最後一個屬性時發生了什麼? –