programing

Angular에서 두 모델을 하나의 입력 필드에 바인딩하려면 어떻게 해야 합니까?

firstcheck 2023. 2. 14. 22:09
반응형

Angular에서 두 모델을 하나의 입력 필드에 바인딩하려면 어떻게 해야 합니까?

두 모델 값을 하나의 입력 필드에 바인딩할 수 있는 방법이 있습니까?

스코프에서 다음과 같은 두 변수의 값이 되는 입력 필드가 있다고 가정합니다.

<input type="text" model="sn_number; id" > 

할 수 없지만 몇 가지 해결 방법이 있습니다.

1. ngChange를 사용하여 다른 모델을 업데이트합니다.

<input type="text" 
       ng-model="sn_number" 
       ng-change="id=sn_number"/> 

2. 모델을 보고 변경 시 다른 모델을 업데이트할 수 있습니다.

$scope.$watch('sn_number', function(v){
  $scope.id = v;
});

또, 의 변경에 대해서도 주의할 필요가 있습니다.id동기화 상태를 유지하려면 이 옵션을 선택합니다.

예:

필드를 즉시 바인딩할 수 있습니다.ng-change뿐만 아니라 실제로는 데이터 바인딩이 아니라 유일한 각도 표현입니다.

  <label>Name</label>
  <input type="text" ng-model="name" value="{{name}}"/>

  <label>Key</label>
  <input type="text" ng-model="key" value="{{key=name}}" />

모델의 두 변수에 입력을 바인딩하는 것은 의미가 없습니다.바인딩은 양방향으로 작동하므로 모델이 업데이트되면 필드가 업데이트되고 그 반대도 마찬가지입니다.만약 당신이 두 가지 변수에 얽매인다면, 진실의 단 하나의 원천은 무엇일까요?

단, ng-change를 사용하여 필드가 변경되었을 때2개의 변수를 설정할 수 있는 컨트롤러의 메서드를 호출할 수 있습니다.

ng-init로

<div ng-controller="ctrl" ng-init="model = { year: '2013', month:'09'}">

또는

<div ng-repeat="c in contact" ng-init="likes = { food: 'steak', drink:'coke'}">

언급URL : https://stackoverflow.com/questions/13890331/how-to-bind-2-models-to-one-input-field-in-angular

반응형