我真的很喜欢ng-clickAngular中的新指令现在自动包含触摸事件的功能.但是,我想知道是否可以从我的自定义指令访问该触摸事件服务?我有很多指令要求我将click事件绑定到给定元素,但我只是使用典型的jquery语法(例如:) element.on('click', function(){ ... }).有没有办法可以将ng-click事件绑定到指令中的元素?无需ng-click在我的视图的HTML中手动将标记放在我的元素上......?
我希望能够利用点击和触摸事件的力量.我显然可以导入一个库(例如HammerJS或QuoJS),但我不想这样做,特别是因为Angular已经在做了.
我可以访问该$swipe服务并绑定不同的元素,但是有类似的服务ngTouch吗?
作为参考,这是我想要这样做的一个例子:
mod.directive('datepicker', ['$timeout', function($timeout){
return {
link: function(scope, elem, attrs){
var picker = new DatePicker();
elem.on('click', function(e){
picker.show();
});
// I would rather do something like:
// elem.on('ngTouch', function(){ ... });
//
// or even:
// $ngTouch.bind(elem, {'click': ..., 'touch': ...});
}
}
}]);
Run Code Online (Sandbox Code Playgroud)
更新:如下所述,该ng-click指令的源代码在这里.谁能看到一种方法来利用该代码并将其转变为"可绑定"服务?
我认为这不是正确的做法.我将通过在您的指令中使用模板然后在其中使用ngTouch来解决这个问题.
mod.directive('datepicker', ['$timeout', function ($timeout) {
return {
template: '<div ng-touch="doSomethingUseful()"></div>',
link: function (scope, elem, attrs) {
var picker = new DatePicker();
scope.doSomethingUseful = function () {
// Your code.
}
}
}
}]);
Run Code Online (Sandbox Code Playgroud)
UPDATE
有关指令元素的附加属性的完整示例:
http://codepen.io/ed_conolly/pen/qJDcr
| 归档时间: |
|
| 查看次数: |
3832 次 |
| 最近记录: |