2016-03-23 18 views
0

oluşturmak yönergesine:angularjs Böyle basit bir direktif var click olayını

angular.module('docsTemplateUrlDirective', []) 
    .controller('Controller', ['$scope', function($scope) { 
     $scope.customer = { 
     name: 'Naomi', 
     address: '1600 Amphitheatre' 
     }; 

$scope.clicke = function(){ 
alert('test'); 
}; 

    }]) 
    .directive('myCustomer', function() { 
     return { 
     templateUrl: 'my-customer.html' 
     }; 
    }); 

index.html

<div ng-controller="Controller"> 
    <div my-customer click-event='clicke()'></div> 
</div> 

my-customer.html

Name: {{customer.name}} Address: {{customer.address}} 
<button>click</button> 

ve ben oluşturmak istiyorum butonu için tıklayın ve kontrol cihazımdan sonra bu etkinliği kullanın. Ama nasıl yapacağımı bilmiyorum. Bana yardım et pls. Çok teşekkürler.

+0

hayır, 'ng-click' kullanabilirsiniz: İşte bir kod örneği var @sumit Plunker
- Bir çalışma örneği bulunabilir? – aprok

+1

Yönergenin tamamının tıklanabilir olması gerekiyor mu? İçeride olduğu gibi, bir öğe direktifidir? – ellitt

+1

'ng-click =" clicke ($ olayı) "' – fracz

cevap

1

Angular size bir şey kullanmanızı öneririm: ng-click. Eğer yönergede tıklarsanız

<div ng-controller="Controller"> 
    <div my-customer ng-click='clicke()'></div> 
</div> 

, bu gibi görünmelidir::

enter image description here

+0

olması gerekiyordu, teşekkürler, ancak daha fazla öğeye ihtiyacım varsa ve tıklamadan sonra biraz kimlik veya ad almam gerekiyorsa. Sekme menüsü gibi yönerge kullanmak istiyorum ve dinamik yapıyorum. Ve bir öğeye tıkladıktan sonra (1,3 .. xxx) kimliğini al. Ve bunu nasıl yapacağımı bilmiyorum. –

1

Sen tekrarlatacak ng-repeat kullanabilirsiniz Burada

senin için yaptığım bir JSBin örnek Bir dizi müşteri ve daha sonra ng-click işlevinin hangi müşteriye (dizideki dizin) görüntülenen parametrelerini almasını sağlayın ...

<div ng-repeat="customer customers track by $index" ng-click="myClickHandler(index)"> 
    {{customer}} 
</div> 
1

Çözümü takip etmenizi öneririm.

angular.module('docsTemplateUrlDirective', []) 
    .controller('Controller', ['$scope', function($scope) { 
    $scope.customer = { 
     name: 'Naomi', 
     address: '1600 Amphitheatre' 
    }; 

    $scope.clicke = function(evt) { 
     alert('test'); 
    }; 

    }]) 
    .directive('myCustomer', function($parse) { 
    return { 
     restrict: 'A', 
     scope: true, 
     templateUrl: 'my-customer.html' 
    } 
    }) 
    .directive('clickEvent', function($parse) { 
    return { 
     restrict: 'A', 
     scope: true, 
     link: function(scope, el, attrs) { 
     var expressionHandler = $parse(attrs.clickEvent) 
     el.find('#btnSubmit').on('click', function(e) { 
      expressionHandler(scope); 
     }) 
     } 
    } 
    }); 
İlgili konular