Program Tip

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

programtip 2020. 11. 26. 19:47
반응형

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


컨트롤러에서 입력 자리 표시 자의 값을 변경하려고하지만 방법을 알 수 없습니다.

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에 자세히 설명 된 ngAttr을 사용하는 것입니다.

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

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


AngularJS에는 jQuery처럼 지시문 DOM 조작이 없으므로 한 요소의 속성을 수정하는 적절한 방법은 지시문을 사용하는 것입니다. 지시문의 링크 기능을 통해 요소와 해당 속성에 모두 액세스 할 수 있습니다.

하나의 지시문 안에 전체 입력을 래핑해도 컨트롤러 속성을 통해 ng-model의 메서드를 도입 할 수 있습니다.

이 방법은 컨트롤러에서 자리 표시 자와 함께 ngmodel의 논리를 분리하는 데 도움이됩니다. 그들 사이에 논리가 없다면 Wagner Francisco가 말한 것처럼 확실히 갈 수 있습니다.


Wagner Francisco가 말했듯이 (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

반응형