2014-12-03 6 views
2

요소 (Button)를 클릭 할 때 다른 요소 속성을 변경해야한다는 요구 사항이 있습니다. jquery로 할 수 있습니다. 하지만 내 각도 프로젝트에서 jquery 무시하고 싶습니다. HTML에서 angularjs의 다른 요소로 요소 가져 오기

, 컨트롤러에서

<input type=password /> 
<button ngclick="changeToTxt()">Change type password to text</button> 

,

app.controller('loginPage', function ($scope) { 
    $scope.changeToTxt = function() { 
    **// need to get the password element and need to change type = text.....** 
    } 
}); 

컨트롤러에서 수행하여 방법 (또는 다른/가장 좋은 방법)이 있습니까? 이것을위한 지침을 작성해야합니까?

답변

2

은 u는 쉽게 동적

여기 유형을 변경할 수 있습니다 노력하고 있습니다 작업 코드입니다. fiddle

<div ng-app="app"> 
    <div ng-controller="MainController"> 
    <input type={{test}} /> 
    <input type="button" value="change" ng-click="changeType()"/> 
    </div> 
</div> 


angular.module('app', []). 
    controller('MainController', ['$scope', function ($scope) { 
    $scope.test = "text"; 

    $scope.changeType = function() { 
     $scope.test = "password"; 

    }; 
}]); 
+0

이 브라우저 간 호환이 가능합니까? IE에서 작동하지 않는다고 생각합니다. 다른 브라우저에서 사용해 보셨습니까? – user1537766

+1

예. 나는 모든 플랫폼에서 테스트를 마쳤습니다. 그것은 모두에서 작동합니다. – simon

+0

IE9 이상에서 작동하지 않습니다. http://www.universalwebservices.net/web-programming-resources/javascript/change-input-element-type-using-javascript –

2

입력 유형을 동적으로 변경할 수 없습니다.

두 가지 버튼 중 하나를 사용하는 것을 고려 했습니까? 하나는 암호 유형이고 다른 하나는 텍스트 유형입니다. 그리고 ng-hide 속성을 사용하여 버튼 클릭시 하나를 숨길 수 있습니다 (해킹입니다).

이이

여기이

<input type="password" ng-model="pwd" ng-show="!showText" /> 
<input type="text" ng-model="pwd" ng-show="showText" /> 

<button ng-click="showText = !showText ">Change type password to text</button> 

뭔가를 시도 할 수 있습니다 할 두 개의 입력을 유지할 수 있습니다

+0

좋습니다. 하지만 요소를 전달하고 컨트롤러 범위 내에서 그 요소를 얻을 생각. (jquery 또는 javascript 직접 접근). – Hello

5

plunker

+0

이 시나리오에 가장 좋고 좋은 방법입니다. – Hello