2016-09-06 4 views
0

저는 Angular JS의 ui-date를 사용하고 있습니다. loop.Below로 렌더링되는 여러 날짜가 내 HTML 코드입니다. 내 컨트롤러에서 각도 JS : 데이터 바인딩이 작동하지 않습니다.

<tr ng-repeat="(k,v) in :: vm.dateMap"> 
 
<th> 
 
<input ng-attr-id="{{ 'dateCmp-' + k}}" ui-date="vm.dateOptionMap[k]"> 
 
</th> 
 
</tr>

는 dateOptionMap는
  vm.dateOptionMap = {}; 
 
      vm.dateOptionMap['03/06/2014'] = { 
 
       changeYear: true, 
 
       changeMonth: true, 
 
       dateFormat: 'dd-mm-yy' 
 
      }; 
 
      vm.dateOptionMap['07/21/2016'] = { 
 
       changeYear: true, 
 
       changeMonth: true, 
 
       dateFormat: 'dd-mm-yy' 
 
      }; 
 
      vm.dateOptionMap['09/06/2017'] = { 
 
       changeYear: true, 
 
       changeMonth: true, 
 
       dateFormat: 'dd-mm-yy' 
 
      };
내가 아래 하나 맵 값을 변경하고 버튼의 클릭에

아래에 포함되어 있습니다. 이 변화는 UI에 반영 안한다되는 방법 적

 vm.dateOptionMap['03/06/2014'] = { 
 
        changeYear: false, 
 
        changeMonth: false, 
 
        dateFormat: 'dd-mm-yy' 
 
       };

. 이걸 좀 도와 주실 수 있습니까?

+0

귀하의 컨트롤러에서 데이터 초기화가 끝나면 스코프를 업데이트하고 변경 사항을 UI에 반영하기 위해'$ scope. $ apply()'를 사용하십시오. 문제가 해결 되었다면 답을 제출해달라고 요청하십시오 – Pezhvak

+0

양방향 바인딩을 수행하려면 여기에 누락 된 ng-model 지시문을 사용해야합니다 –

답변

0

이 줄 ng-attr-id="{{ 'dateCmp-' + k}}"id 특성에만 값을 렌더링합니다. ng-attr-idDO00 NOT BIND 값입니다.

<input>에 날짜 값을 바인딩하려면 ng-model 특성에 적절한 js 변수를 설정하고 변수 값을 동적으로 변경해야합니다.

관련 문제