Ng-click not firing

I am having an issue with the usage of ng-click in a controller, specifically, a login controller, which transitions to another view.

On iOS 9.1, the tap of the login button does not fire, in fact, it changes to activate state. On Android, tapping the button proceeds as expected to another view and controller.

Have put together a codepen.io that mirrors what is actually in the real project that am experiencing the issue, along with a few stylesheets used also in the real project.

The login page authenticates the user and proceeds to the main page if successful.

The ionic info reports this:

Your system information:

Cordova CLI: 5.4.0
Gulp version: CLI version 3.9.0
Gulp local: Local version 3.9.0
Ionic Version: 1.1.1
Ionic CLI Version: 1.7.10
Ionic App Lib Version: 0.6.5
ios-deploy version: 1.8.2
ios-sim version: 5.0.3
OS: Mac OS X El Capitan
Node Version: v5.0.0
Xcode version: Xcode 7.1.1 Build version 7B1005

The project targets both Android and iOS, initially, I did suspect that there was a conflict with the button class in the ionic’s stylesheet and elsewhere. I have however, been unsuccessful in determining if either the style class or was it data-tap-disabled attribute was causing the issue.

So nothing in the code looks like it’s blocking the button from firing.
Loaded he app up on a ios device and it was firing for me.

There’s nothing inside of ionic’s code that would prevent the click from firing.
I’d need more info.

Maybe see if you could debug the click event and check if it’s a javascript error on ios?

As is the nature of the project, is company related software so as cannot show everything, but the codepen is the gist of it.

I did notice one thing if that may be of help, the content-security policy on the index.html

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' img-src 'self' data:;" >

As it happened just now with Android version, I had to click the login button twice, in the console I was getting messages other than “normal”,

Consider using ‘dppx’ units instead of ‘dpi’, as in CSS ‘dpi’ means dots-per-CSS-inch, not dots-per-physical-inch, so does not correspond to the actual ‘dpi’ of a screen. In media query expression: not all, (-webkit-min-device-pixel-ratio: 1.5), not all, (min-resolution: 144dpi), (min-resolution: 1.5dppx) index.html:1
Resource interpreted as Script but transferred with MIME type text/plain: “file:///android_asset/www/plugins/cordova-plugin-device/www/device.js”. cordova.js:1692
Resource interpreted as Script but transferred with MIME type text/plain: “file:///android_asset/www/plugins/cordova-plugin-splashscreen/www/splashscreen.js”. cordova.js:1692
Resource interpreted as Script but transferred with MIME type text/plain: “file:///android_asset/www/plugins/cordova-plugin-statusbar/www/statusbar.js”. cordova.js:1692
Resource interpreted as Script but transferred with MIME type text/plain: “file:///android_asset/www/plugins/ionic-plugin-keyboard/www/android/keyboard.js”. cordova.js:1692
Resource interpreted as Script but transferred with MIME type text/plain: “file:///android_asset/www/plugins/cordova-plugin-screen-orientation/www/screenorientation.js”. cordova.js:1692
Resource interpreted as Script but transferred with MIME type text/plain: “file:///android_asset/www/plugins/cordova-plugin-screen-orientation/www/screenorientation.android.js”. cordova.js:1692
Resource interpreted as Script but transferred with MIME type text/plain: “file:///android_asset/www/plugins/phonegap-nfc/www/phonegap-nfc.js”. cordova.js:1692
Resource interpreted as Script but transferred with MIME type text/plain: “file:///android_asset/www/plugins/cordova-plugin-whitelist/whitelist.js”. cordova.js:1692
deviceready has not fired after 5 seconds. cordova.js:1183
Channel not fired: onDOMContentLoaded cordova.js:1176

The last two lines is what caught my eye, and am wondering if that is part of why the ng-click fails.

What do you think?

Yeah, that looks like it would do it.
Could be an error with a plugin not loading throwing things off.
I’d attempt either running, ionic state reset, or creating a smaller sample project and see if you can migrate your code over.

Why would a plugin just “mysteriously” give up the ghost and fail? Would have thought the plugin would be more reliable now surely?