Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从角度控制器隐藏div_Javascript_Angularjs_Angularjs Directive_Angularjs Scope_Angular Controller - Fatal编程技术网

Javascript 如何从角度控制器隐藏div

Javascript 如何从角度控制器隐藏div,javascript,angularjs,angularjs-directive,angularjs-scope,angular-controller,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,Angular Controller,我的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

我的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>
但是这个不行,有人能纠正我吗

在我的登录控制器下面

  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) {

$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;

            });
以下是一份工作报告:

HTML:


确保此div位于ng控制器元素内。此外,请使用$scope.loginCtrl.showTouchID而不是loginCtrl.showTouchID在视图中访问此变量。也共享loginCtrl代码。现在还不清楚你是否在任何地方使用$scope。不知道我已经更新了我的问题,警报被调用了,但是div没有变化。你可以设置一个演示小提琴吗?正如你在上面提到的,只有scope的问题,我可以通过设置loginCtrl.showthouchid=false来隐藏/显示div;外部window.plugins.touchid.isAvailable方法但内部不工作如何访问window.plugins.touchid.isAvailable方法中的hideTouchId?我尝试使用$scope.loginCtrl.hideTouchId=true;如何访问window.plugins.touchid.isAvailable方法中的hideTouchId?我尝试使用$scope.loginCtrl.hideTouchId=true;但是在控制器中不工作,将其用作
$window.plugins.touchid.isAvailable
$window.plugins.touchid.isAvailable此方法工作正常请查看我的控制器我已在控制器中注入$window,并且在控制器内部也会触发警报,但$scope.loginCtrl.showthouchId=true;没有对我的DOM进行任何更改,但是如果我将loginCtrl.showthouchid放在测试工作的方法之外,那么在该方法内部似乎无法访问,我如何修复此问题您是否定义了
$scope.loginCtrl={}
  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;

            });
<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>
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;
        }
    }
});