AngularJS 사용자가 팝업에서 그리드의 값을 선택하고 선택한 값이 컨테이너 페이지의 텍스트 상자에 표시되는 시나리오가 있습니다. 사용자가 값을 선택하면 팝업이 컨테이너 페이지에 캡처 된 이벤트를 발생시킵니다. 이제 .val()
을 사용하여 텍스트 상자의 값을 설정할 수 있지만 어떻게 모델을 업데이트합니까? 이 텍스트 상자를 유의하시기 바랍니다동적으로 업데이트 한 후의 범위 값 업데이트 텍스트 상자
<input type="text" value="" id="ServiceManagerglookup" ng-model="Model.Person2.Name" />
<label id="ServiceManagerglookup_inlinelbl" ng-model="Model.Person2.Name">ABC</label>
는, 예를 들어 범위에서 임의의 필드에 바인딩 할 수 있습니다 여기에
$scope.$on('rowSelectedInPopup', function (event: ng.IAngularEvent, ...data) {
if (elementId === data[1].toString()) {
$(elementId).val(data[0].toString());
$(elementId + "_inlinelbl").html(data[0].toString());
}
});
내 텍스트 상자 및 레이블 HTML입니다 값이이 입력 청취자의 트리거링이
$scope.$on('rowSelectedInPopup', function (event: ng.IAngularEvent, ...data) {
if (elementId === data[1].toString()) {
$(elementId).val(data[0].toString());
$(elementId + "_inlinelbl").html(data[0].toString());
$(elementId).trigger('input');
}
});
처럼
$(elementId).trigger('input');
를 사용하여 변경할 것을 당신은 또한 각도 알릴 필요 값을 변경 게다가 Model.AVC.XYZ.LMN
오해하면 죄송 합니다만; 양방향 바인딩은 Angular의 주요 기능 중 하나임을 기억하십시오.보기를 변경하는 대신 모델을 간단히 변경하면 데이터가 자동으로 업데이트됩니다. 그래서 컨트롤러를 통해 간단하게'$ scope.Model.Person2.Name = html (data [0] .toString())'을 설정하십시오. 'ng-model = "Model.Person2.Name"'을 가진 입력 요소가 단순히 갱신 될 것입니다. –
안녕하세요, 답장을 보내 주셔서 감사합니다. 문제는 다른 곳에서 컨트롤을 사용할 수 있고 다른 필드에 바인딩 할 수 있기 때문에 Model.Person2.Name도 동적이라는 것입니다. 그래서 나는 모든 스크린으로 바뀔 수있는 스코프 [ "Model"[ "Person2"] [ "Name"] 같은 것을해야합니다. 그래서 올바른 질문은 "Model.Person2.Name 또는 Model.ABC.XYZ.PQR과 같은 문자열이있는 경우 범위의 값을 어떻게 업데이트 할 수 있습니까?" – Haris
나는 볼 수 있습니다. 다른 솔루션은 생각할 수 없습니다. 단순히 상기 문자열을 분할하는 것; '$ array.array [0] .array [1] .array [2] .array [3] = html (data [0] .toString())'var array = string.split ('.')')'정확하게 좋은 솔루션은 아니지만, 그럼에도 불구하고 –