我有简单的指令,如下:
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>
我想为点击按钮创建事件,然后在我的控制器中创建事件 使用此活动。 但我不知道该怎么做。 帮帮我吧非常感谢。
答案 0 :(得分:1)
我建议使用Angular已经给你的东西:ng-click
。
以下是我为您做的JSBin示例:
<div ng-controller="Controller">
<div my-customer ng-click='clicke()'></div>
</div>
如果单击该指令,它应如下所示:
答案 1 :(得分:1)
您可以使用ng-repeat
迭代一组客户,然后让您的ng-click
函数获取与哪个客户(数组中的索引)相关联的参数...
<div ng-repeat="customer customers track by $index" ng-click="myClickHandler(index)">
{{customer}}
</div>
答案 2 :(得分:1)
我建议遵循解决方案。一个工作的例子可以在 -
@sumit Plunker
这是代码示例:
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);
})
}
}
});