2016-09-09 2 views
0

일부 선택 상자가 ng-options인데, 옵션을 선택할 때 ng-model을 업데이트하지 않습니다. 나는 소스를보기 위해 http://jsfiddle.net/32tntojs/에 바이올린을 가지고있다.선택 옵션을 변경할 때 ng-model이 업데이트되지 않습니다.

내 HTML은

<div ng-controller="MyCtrl"> 
PARENTID: {{ parent_id }} 
<select ng-model="parent_id" ng-options="project.id as project.groupingName for project in projects track by $index"></select> 
</div> 

내가 뭔가를 선택하면 parent_id는 업데이트되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

<= "PARENT_ID"NG-옵션 = "프로젝트에 프로젝트에 대한 project.groupingName로 project.id가 project.id으로 추적"을 선택 NG 모델> 프로젝트에 의해 트랙 .id – dharmesh

+0

@dharmesh 컨트롤러의'$ index'를 사용할 수 없습니까? –

+0

@DavidR 텍스트 구문으로서의 값은 전적으로 적절합니다. – Lex

답변

1

업데이트 바이올린 : https://jsfiddle.net/32tntojs/3/

오브젝트 귀하의 projects 배열 id가 포함되어 있지 않습니다 그래서 그것을 대체 gid

HTML :

<select ng-model="parent_id" ng-options="project.gid as project.groupingName for project in projects"></select> 

또 다른 실수 : astrack by와 함께 사용할 수 없습니다

참조 AngularJS와 문서 도구 - https://docs.angularjs.org/api/ng/directive/ngOptions

Be careful when using select as and track by in the same expression

3

프로젝트 개체에 id 속성이없는 것 같습니다. select 요소를 검사 할 때 모든 옵션 값은 undefined입니다. (@ plong0가 지적한대로) 당신은 NG-옵션에서 $index을 사용할 수 없습니다

<select ng-model="parent_id" ng-options="project.gid as project.groupingName for project in projects track by $index"></select> 
0

:

ng-option 구문은 괜찮 은데 내가 그것을 변경할 때 NG-모델은 사실 업데이트에서 않습니다.
작업이 수행합니다

<div ng-controller="MyCtrl"> 
    PARENTID: {{ parent_id }} 
    <select ng-model="parent_id" ng-options="project.id as project.groupingName for project in projects track by $index"></select> 
</div> 

updated fiddle를 참조하십시오.

관련 문제