Я определил пользовательский фильтр для форматирования входного числа в определенном формате, т.е. чч: мм
фильтр
app.filter('formatDuration', function () {
return function (duration) {
if (angular.isUndefined(duration) || duration === null || duration.toString().trim() == '') return '';
var hour = Math.floor(duration / 60);
var min = duration % 60;
if (min < 10) {
min = '0' + min;
}
return hour + ':' + min;
};
});
Однако, если я не могу связать его с моим input type = text field data-ng-model = "myModel"
. Когда я ввожу что-то в модель данных ng-поля ввода, это не соединяется с моим фильтром.
<input type="text" name="Duration" class="form-control" data-ng-model="{{Duration | formatDuration" />
Но, если я свяжу его со значением, например. value = "{{data-ng-model = Duration | formatDuration}}"
, чем он соединяется с моим пользовательским фильтром и выполняет необходимое преобразование, но не показывает отформатированное значение внутри поля ввода, вместо этого показывает, что было введено изначально..
<input type="text" name="Duration" class="form-control" data-ng-model="Duration" value="{{Duration | formatDuration}}" />
Итак, у меня есть несколько моментов, которые нужно уточнить
1) Могу ли я связать фильтр клиентов с моделью данных ng? Согласно сайту AngualrJs Да, это должно быть 2) Если да, то где я ошибаюсь?
Возможно, стоит упомянуть, что мое поле ввода находится внутри ng-repeat...