angular.js - angular ng-focus ng-blur 存在問題
仅有的幸福
仅有的幸福 2017-05-15 17:07:46
0
2
547

-.html

<input type="text" ng-focus="display = false" ng-blur="display = true" ng-init="display = true">
<p ng-show="display">aaa</p>

如上述程式碼,focus/blur可以正常控制p標籤的顯示與隱藏

-.html

<input type="text" ng-focus="display = false" ng-blur="hide()" ng-init="display = true">
<p ng-show="display">aaa</p>

-controller.js

$scope.hide = function (){
    $scope.display = true;
};

上述程式碼只要focus input,display一直是false, 求解。

續:

老衲服了,貼出專案代碼如下:

-.html

    <p class="form-group">
        <label class="form-label">应用名:</label>
        <span class="desc" ng-show="applyTips"
   ng-init="applyTips = true"> 应用名是您将要创建的应用的名称,组织内唯一</span>
       <span class="warn" ng-show="applyNameExit">应用名已存在,请重新输入</span>
       <span class="warn" ng-show="login.applyName.$error.pattern">您的应用名不正确</span>
       <p class="controls">
            <input type="text" name="applyName" class="form-control"
               ng-model="param.deployment.metadata.name"
               ng-pattern="/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/" ng-focus="applyTips=false"
               ng-blur="login.applyName.$error.pattern ? applyTips = false : nameIsExit();"
               required>
        </p>
    </p>
    

-controller.js

$scope.nameIsExit = function (){

    if($scope.param.deployment.metadata.name !='' && $scope.param.deployment.metadata.name != undefined){
        var param = {
            orgId: $localStorage.orgId,
            userId: $localStorage.userId,
            sessionId: $localStorage.sessionId,
            "name": $scope.param.deployment.metadata.name
        };
        deploymentService.applyNameisExit(param, function(res){
            if(res.code == 1415){
                $scope.applyTips = false;
                $scope.applyNameExit = true;
                $scope.submit = function(){
                    return;
                }
    
            }else{
                $scope.applyTips = true;
                $scope.applyNameExit = false;
    
            }
        });
    }
    else{
        $scope.applyTips = true;
    }
};

input失去焦點後,提示訊息不再顯示。

仅有的幸福
仅有的幸福

全部回覆(2)
滿天的星座

ng-blur 裡面寫表達式就行
ng-blur="isHide"

在控制器中對isHide賦值
$scope.isHide=true;

同理ng-focus裡面也是一樣

官網文件

伊谢尔伦

這位少年,我懷疑你姿勢有問題。

<body ng-app="myApp">
    <p ng-controller="MyCtrl">
         <input type="text" ng-focus="display = false" ng-blur="hide()" ng-init="display = true">
         <p ng-show="display">aaa</p>
    </p>
    <script type="text/javascript">
        var app = angular.module('myApp', []);
        app.controller('MyCtrl',function($scope){
            $scope.hide = function (){
                $scope.display = true;
            }
        });
    </script>
</body>

如果还有问题,我保证让你自切jj

-------------------------------呵呵噠---------------- -----------------------

$scope.param = {
    deployment:{
        metadata:{

        }
    }
}

開啟控制台看下錯誤訊息就能解決了。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板