programing

AngularJS - ng-repeat에 의해 생성된 라디오 버튼 선택 시 모델이 업데이트되지 않음

skycolor 2023. 3. 8. 21:00
반응형

AngularJS - ng-repeat에 의해 생성된 라디오 버튼 선택 시 모델이 업데이트되지 않음

ng-repeat을 사용하여 여러 개의 라디오 버튼을 생성하고 그 중 하나가 선택되면 모델을 업데이트하려고 합니다.이것은 효과가 없는 것 같습니다.

무선 입력이 ng-repeat에 의해 생성되는 것이 아니라 하드코딩되어 있는 경우에도 같은 마크업이 정상적으로 동작합니다.

이 방법은 다음과 같습니다.

<input type="radio" ng-model="lunch" value="chicken" name="lunch">
<input type="radio" ng-model="lunch" value="beef" name="lunch">
<input type="radio" ng-model="lunch" value="fish" name="lunch">  
{{lunch}}

이것은, 이하에 해당하지 않습니다.

<input type="radio" ng-model="lunch" ng-repeat="m in meat" value="m" name="lunch">    
{{lunch}}

다음 URL에서 jsfiddle을 참조하십시오.http://jsfiddle.net/mark_up/A2qCS/1/

어떤 도움이라도 주시면 감사하겠습니다.

감사해요.

<div ng-controller="DynamicCtrl">
    <input type="radio" ng-model="$parent.lunch" ng-repeat="m in meat"  
    ng-value="m" name="lunch">    
    {{lunch}}
</div>

효과가 있을 거야.

제가 알기로는ng-repeat자체 생성$scope.그래서 를 참조해 주세요.$parent $scope;Yes, AngularJS가 까다롭다.또, 이 설정을 변경할 필요가 있습니다.value로.ng-value너무.

위의 문제는 여기서 논의되었다

이는 ng-repeat에 의해 새로운 스코프가 생성되기 때문입니다.기본적으로는 각각<input>는 자체 내부 스코프에 selectedOption 값을 작성합니다.이 문제를 해결하려면 해당 값에 대한 새 컨테이너 개체를 만듭니다.예를 들어 컨트롤러로 선언할 수 있습니다.

$scope.data = {selectedOption: x};

그런 다음 템플릿에서ng-model="data.selectedOption"

이렇게 하면 ng-model이 갱신됩니다.:)

이것은 까다롭다

값을 ng-value로 치환하기만 하면 됩니다.

언급URL : https://stackoverflow.com/questions/17674899/angularjs-model-not-updating-on-selection-of-radio-button-generated-by-ng-repe

반응형