2014-11-03 2 views
2

두 개의 단락과 입력 태그가 있습니다. 단락을 클릭하면 입력 내용이 표시되고 단락이 숨겨져 야합니다. 입력이 흐려지면 입력을 숨기고 단락을 표시해야합니다. 나는 이것을 시도했지만 작동하지 않는 이유 데모 아래모서리 블러에 요소를 숨기기

var app = angular.module('app', []); 
 

 
app.controller('homeCtrl', function($scope, $timeout) { 
 

 

 
    $scope.showEditor = function() { 
 

 
    $scope.edit = true; 
 

 
    var textbox = document.getElementById("input_email"); 
 

 
    var tmp = $scope.text 
 
    $scope.text = "" 
 

 
    $timeout(function() { 
 
     textbox.focus(); 
 

 
     $scope.text = tmp; 
 

 

 
    }); 
 

 

 

 

 

 
    } 
 

 
    $scope.blurUpdate = function() { 
 

 

 
    // add this line 
 
    $scope.edit = false; 
 

 

 
    //your code 
 

 
    } 
 

 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app"> 
 
    <div ng-controller="homeCtrl" ng-init="text='some text'"> 
 
    <p ng-click="showEditor()" ng-show="!edit">{{text}}</p> 
 
    <div ng-show="edit"> 
 
     <input type=text name="email" ng-blur="blurUpdate()" ng-model="text" id="input_email" /> 
 
    </div> 
 
    </div> 
 

 
</div>

+2

질문에 오타가 있었습니까? 아니면 'ng-blur'이후에'='을 정말로 잊었습니까? 또한,'div'보다는'input'에'ng-blur '를 넣으십시오. – sp00m

+0

죄송합니다. 오타가 있습니다. div 안에 아이콘이 있습니다. 나는 그들도 숨기 길 바래. –

답변

4

이동 ng-blur 작동하지 않음 :

<p ng-click="edit = true" ng-show="!edit">some text</p> 
<div ng-show="edit" > 
<input type=text ng-blur="edit = false" name="email" /> 
</div> 

http://jsfiddle.net/xgp2qsww/1/

+0

미안하지만 나는 입력 흐림에 다른 기능을 가지고 언급하지 않았다. 지금 설정하는 방법. 질문 수정 됨 –

+0

@AbelD 업데이트 된 답변보기 – sylwester

+0

게재 중. 좋지만 또한 초점이 필요합니다. 지금 나는 입력의 초점을 얻으려면 두 번 클릭해야합니다. –

1

ngBlur 입력 태그와 호환되는, 즉 참조하십시오 input

<p ng-click="edit = true" ng-show="!edit">some text</p> 
<div ng-show="edit" ng-blur="edit = false"> 
    <input type=text name="email" ng-blur="blurUpdate()" /> 
</div> 
+0

입력 오류가있는 다른 기능이 있음을 언급하지 못했습니다. 지금 설정하는 방법. 질문 편집 –

+0

그러면 접근 방식을 변경해야합니다. http://jsfiddle.net/xgp2qsww/3/ div의 ngBlur가 유용하지 않습니다. blurUpdate 함수는 당신이 찾는 것을 수행하기 위해 $ scope.edit를 변경해야합니다. – Michael

+0

그것의 보여주기. 좋지만 또한 초점이 필요합니다. 지금 나는 입력의 초점을 얻으려면 두 번 클릭해야합니다. –

관련 문제