programing

모델을 통해 입력 자리 표시자 값을 변경하시겠습니까?

testmans 2023. 4. 5. 21:24
반응형

모델을 통해 입력 자리 표시자 값을 변경하시겠습니까?

컨트롤러에서 입력 플레이스홀더 값을 변경하려고 하는데 방법을 알 수 없습니다.

input(type='text', ng-model='inputText', side='30', placeholder='enter username')

모델의 요소 속성을 수정할 수 있는 방법이 있습니까?

컨트롤러 내의 변수를 사용하여 바인드할 수 있습니다.

<input type="text" ng-model="inputText" placeholder="{{somePlaceholder}}" />

컨트롤러 내:

$scope.somePlaceholder = 'abc';

수락된 답변은 여전히 IE에서 Javascript 오류를 발생시켰습니다(적어도 Angular 1.2의 경우).버그이지만 회피책은 https://docs.angularjs.org/guide/interpolation에 자세히 기재되어 있는ngAtr을 사용하는 것입니다.

<input type="text" ng-model="inputText" ng-attr-placeholder="{{somePlaceholder}}" />

문제: https://github.com/angular/angular.js/issues/5025

각진 이후JS에는 jQuery와 같은 디렉티브 DOM 조작이 없습니다.한 요소의 속성을 수정하는 적절한 방법은 디렉티브를 사용하는 것입니다.디렉티브의 링크 기능을 통해 요소와 그 속성 모두에 액세스할 수 있습니다.

입력 전체를 하나의 디렉티브로 감싸도 컨트롤러 속성을 통해 ng-model의 메서드를 도입할 수 있습니다.

이 메서드는 컨트롤러에서 플레이스홀더와 ngmodel의 로직을 분리하는 데 도움이 됩니다.둘 사이에 논리가 없다면 바그너 프란시스코가 말한 대로 해도 된다.

바그너 프란시스코가 말했듯이 (JADE)

input(type="text", ng-model="someModel", placeholder="{{someScopeVariable}}")`

또한 컨트롤러에서는 다음과 같이 동작합니다.

$scope.someScopeVariable = 'somevalue'

언급URL : https://stackoverflow.com/questions/17713137/change-value-of-input-placeholder-via-model

반응형