2014-02-06 1 views
0

시간 입력 상자 지시문을 만드는 중입니다. html로는 다음과 같습니다 : model.Timenull입니다 가능성이

<time-input data-ng-model="model.Time"></time-input>

. 이것은 또한 ngModelController$modelValue이 정의되지 않은 것을 의미합니다. 그러나 내가 만들거나 설정할 때 $modelValue, 다시 undefined로 설정하고 왜 그지 모르겠다.

여기 내 행동 문제를 볼 수있는 Fiddle입니다. 시간 1은 작동하지만 시간 2는 작동하지 않습니다. 시간 2에 유효한 값을 입력하면 제거됩니다.

누군가가 이것이 왜 어떻게 해결되는지 설명 할 수 있습니까?

답변

2

당신은 손에 의해 모델을 넣을 필요가 없습니다 ... 자동으로 넣어 거기 당신은뿐만 아니라보기가 포맷이

works here

그래서 파서 외모를 반환하는 값을 가지고로 파서에서 반환 값 이와 같이 updateTimeInModel은 모델에 대한 객체를 반환합니다.

controller.$parsers.unshift(function (value) { 
    if (!value) return; 
    var valid = regEx.test(value); 

    controller.$setValidity('validTime', valid); 

    if (valid) { 
     return updateTimeInModel(); 
    } 

    console.log(controller.$modelValue); 
    return null; 

}) 
+0

솔루션을 제공해 주셔서 감사합니다! 하지만 내 코드가 작동하지 않는 이유를 설명해 주시겠습니까? 왜 널 돌려 줄거야? 따라서 파서 또는 포매터 함수에 의해 리턴 된 값은'$ modelValue'로 설정됩니다, 맞습니까? – Martijn

+2

@Martijn : 파서에 의해 반환 된 값은 포맷터에 의해 반환 된 값이 컨트롤에 표시 될 '$ modelValue'로 설정됩니다. –

+0

@KhanhTO : 감사합니다. 하지만 여전히 내 코드가 작동하지 않는 이유를 이해하지 못합니다. 사실 나는 또한 유효하고 채워진 객체를 반환하고 있지만 이것은 무시되는 것 같습니다. 이유를 설명해 주시겠습니까? – Martijn

관련 문제