angular.js-处理控制器内部点击的最简单方法
angular.js - simplest way to handle click inside controller
在控制器内部有比这更好的处理点击的方法吗?
<div ng-controller="SomeController>
<a href="/#!/something" ng-click="doTheSame()">link1</a>
<a href="/#!/something" ng-click="doTheSame()">link2</a>
<a href="/#!/something" ng-click="doTheSame()">link3</a>
..
<a href="/#!/something" ng-click="doTheSame()">link99</a>
</div>
在jQuery中,我会做一些类似的事情:
$('div > a').on('click', function() {
// do some stuff
});
您实际上并不想处理控制器中的任何DOM内容(控制器只是将数据绑定到视图,而视图恰好是DOM)。
您希望使用指令进行DOM操作。(但是,是的,ng-click
是一个内置指令,可以在控制器内运行方法)。
如果你想把一些行为附加到一个元素上,你可以这样做:
myApp.directive('myDirective', myDirective);
myDirective.$inject = ['whateverService'];
function myDirective(whateverService) {
var d = {
restrict: 'A',
link: link
};
return d;
function link(scope, $el, attrs) {
$el.on('click', doSomething);
function doSomething() { /* ... */ }
}
}
HTML:
<div myDirective></div>
有关更多信息,请参阅John Papa的风格指南。
您可以有多个这样的指令,甚至可以传入数据:
<div myDirective="first-link">First</div>
<div myDirective="second-link">Second</div>
<!-- etc. -->
相关文章:
- JQuery:向多个匹配结果添加换行符的最简单方法
- 访问对象的最简单方法'的单独财产
- 什么'这是使用jQuery将一些文本锚定到外部链接的最简单方法
- 实施会员系统的最简单方法是什么
- 出错时更改文本字段边框的最简单方法
- JavaScript:获取第一个月前 6 个月的日期的最简单方法
- 在CreateJS中加载视频的最简单方法
- 使用JavaScript过滤从网页复制的文本的最简单方法
- 创建在Javascript和PHP之间使用的唯一代码的最简单方法
- 使用JS找出字符串中字符重复的最简单方法是什么
- 使选择框在URL中使用变量重新加载页面的最简单方法
- 在原始对象的基础上创建新对象的最简单方法,但没有几个字段
- 在HTML中记住用户区域设置选择的最简单方法
- 在Raphael JS中创建脉动(循环)背景的最简单方法
- 从jquery下载具有现有路径的文件的最简单方法
- 在 Javascript 中将对象连接为空格分隔字符串的最简单方法是什么?
- 什么'这是重定向不受支持的浏览器的最简单方法
- 管理形式状态的最简单方法是什么
- 创建响应图像的最简单方法是什么
- 在 JavaScript 中,将文本插入字符串的最简单方法是什么?