我的html中有一个div
<div class="row" ng-show="loginCtrl.showTouchID" >
<div class="col-xs-12">
<button type="button" class="col-xs-12 btn btn-touch-id" data-ng-click="#">
TouchID Login
</button>
</div>
</div>
现在需要在我的控制器构造中检查设备是否支持触摸id,如果它显示div或者不是
window.plugins.touchid.isAvailable(
function (msg) {
navigator.notification.alert('Touch id supported: ' + msg);
loginCtrl.showTouchID=true;
}, function (msg) {
navigator.notification.alert('Touch id not supported: ' + msg);
loginCtrl.showTouchID=false;
});
但这不行,任何人都可以纠正我
在我的登录控制器下面
angular.module('heritage').controller('LoginCtrl', LoginCtrl);
LoginCtrl.$inject = ['$scope','$rootScope', '$state', '$window', 'UserService', 'ServiceHelper', '$stateParams'];
/**
* Construct the controller.
* @param $rootScope the root scope
* @param $state the state object
* @param $window the window object
* @param UserService the user service
* @returns the controller object
*/
function LoginCtrl($scope,$rootScope, $state, $window, UserService, ServiceHelper, $stateParams) {
答案 0 :(得分:2)
将$scope
传递给您的函数(如果它是外部的)并在那里更改$scope
个变量。
window.plugins.touchid.isAvailable($scope
function (msg) {
navigator.notification.alert('Touch id supported: ' + msg);
$scope.showTouchID=true;
}, function (msg) {
navigator.notification.alert('Touch id not supported: ' + msg);
$scope.showTouchID=false;
});
答案 1 :(得分:2)
这是一个有效的JSFiddle:
HTML:
<div ng-app="app" ng-controller="dummy">
<div class="row" ng-show="loginCtrl.showTouchID">
<div class="col-xs-12">
<button type="button" class="col-xs-12 btn btn-touch-id" data-ng-click="setTouch('hello')">TouchID Login</button>
</div>
<p>{{loginCtrl.showTouchID}}</p>
</div>
</div>
JS:
var app = angular.module("app", []);
app.controller('dummy', function ($scope) {
$scope.loginCtrl = {showTouchID: true};
$scope.setTouch = function (msg) {
if ($scope.loginCtrl.showTouchID) {
alert('Touch id not supported: ' + msg);
$scope.loginCtrl.showTouchID = false;
} else {
alert('Touch id supported: ' + msg);
$scope.loginCtrl.showTouchID = true;
}
}
});