Ng-submit不触发angular-touch / touch事件
ng-submit not firing with angular-touch / touch events
我有一个奇怪的问题,触摸事件不触发ng-submit
或ng-click
(在chrome设备开发工具)。Chrome开发工具模拟touchstart/touchend事件,所以我不确定为什么这不会工作。
给定以下HTML形式:
<form subscribe-to-newsletter ng-submit="subscribe.submitEmailSubscribe()" ng-class="{ error : subscribe.states.error, success : subscribe.states.success }">
<div class="status-icon loading" ng-show="subscribe.states.loading"><i class="fa fa-circle-o-notch fa-spin"></i></div>
<div class="status-icon success" ng-show="subscribe.states.success"><i class="fa fa-check"></i> Subscribed!</div>
<input type="email" placeholder="Email Address" ng-model="subscribe.email">
<button type="submit" class="hollow">Subscribe to newsletter</button>
</form>
和下面的指令/控制器:
angular.module('quiip.directives')
.directive('subscribeToNewsletter', subscribeToNewsletterDirective);
function subscribeToNewsletterDirective(){
return {
restrict: 'A',
scope: {},
bindToController: {},
controllerAs: 'subscribe',
controller: subscribeToNewsletterCtrl,
link: function(scope, el){
el.addClass('subscribe-to-newsletter');
}
}
}
function subscribeToNewsletterCtrl($scope, $http){
this.states = {
loading: false,
success: false,
error: false
};
this.email = '';
this.submitEmailSubscribe = function(){
console.log('submitting');
}
}
控制台日志从不注册。它在桌面上工作得很好。奇怪的是,ng-submitted
类被添加到表单。
我是否错过了ng-submit
和触摸事件?
我建议你从组件的角度来考虑问题,比如一个通讯组件,或者把你的逻辑放在一个外部控制器中。您正在尝试访问指令外部的指令控制器。这是不可能的。我建议为您的功能创建一个组件,并将所有逻辑放入其控制器中。还要记得提供一个模板。现在你可以访问组件的控制器,就像你在上面的代码中使用controllerAs: 'subscribe'
一样。
将标记放在单独的文件中或使用内联模板。然而,在我看来,把模板放在一个单独的文件中会让你的指令更容易读懂。
然后,例如,像这样使用你的指令:
<newsletter-component></newsletter-component>
相关文章:
- iOS Touch 事件在 DOM 插入时传递
- Selectfield卡在Sencha Touch&选择时未触发的事件
- Sencha Touch-在NumberField上添加KeyDown事件
- Sencha Touch和Clusterize.js,向下传递触摸滚动事件
- iPad Touch事件没有工作,尽管我使用了一些特定的代码
- Ng-submit不触发angular-touch / touch事件
- 在Sencha中Touch事件不会取消键盘
- 如果我使用' touch '事件而不是' click'JQM中的事件
- Sencha Touch 2转盘指示灯轻拍事件
- Touch等同于Mouseout事件是什么?
- backone .js的click事件对touch不起作用
- 使用dojo/touch进行事件委托
- Sencha Touch:轻敲面具事件
- 从iframe调用parent上的touch事件
- 为什么touch事件监听器似乎阻止了iphone或ipad上谷歌翻译语言的选择?
- Cordova/Touch onclick事件问题
- Cordova: Touch事件被InAppBrowser插件触发
- 点击Sencha touch中html更新后新元素上的事件
- 空白屏幕和必要的滚动事件,以在Sencha Touch中记录较少的商店中获取值
- 处理Sencha Touch中单选按钮上的事件