Запуск угловой пользовательской директивы, когда модель загружается через $ resource

0

У меня есть следующая проблема с угловыми пользовательскими директивами. У меня модальный диалог, который заполняется элементами ввода. Эти входные элементы заполняются с помощью угловой директивы ng-repeat, подобной этой

            <div ng-repeat="item in params">
                <label>{{item.nombre}}{{item.valor}}</label>
                <div class="input-group" ng-if="item.tipo=='DATE'">
                    <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>
                    <input  type="text" name="{{item.nombre}}" class="form-control reportesFechas" ng-model="item.valor"
                            data-custom-datepicker data-date-format="dd/mm/yy" id="{{item.nombre}}">
                </div>
            </div>

data-custom-datepicker - мой пользовательский атрибут. Модель params заполняется через вызов службы на бэкэнд java, как это

         appbsReportsParamsService.query({
            q: "idReport="+id
        }, function(data){
            $scope.params = data.content;
        })

Сервисный вызов работает нормально, потому что окончательный HTML является "правильным" с точки зрения генерируемых входов. Однако data-custom-datepicker не применяется. Это генерируемая часть HTML-ng-repeat:

<div class="input-group ng-scope" ng-if="item.tipo=='DATE'">
    <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>
    <input type="text" name="fecDesde" class="form-control reportesFechas hasDatepicker ng-pristine ng-valid ng-touched" ng-model="item.valor" data-custom-datepicker="" data-date-format="dd/mm/yy" id="fecDesde">
</div>
<div class="input-group ng-scope" ng-if="item.tipo=='DATE'">
    <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>
    <input type="text" name="fecHasta" class="form-control reportesFechas hasDatepicker ng-pristine ng-valid ng-touched" ng-model="item.valor" data-custom-datepicker="" data-date-format="dd/mm/yy" id="fecHasta">
</div>

Поэтому в основном я хочу знать, как применить директиву после вызова службы асинхронного вызова для заполнения модели.

Теги:
angularjs-directive

2 ответа

0
Лучший ответ

Хорошо, проблема заключалась в том, что я запускал директивный код под фазой "компиляция". Я меняю его на "пост", теперь все работает нормально. Проблема заключается в угловом рабочем процессе (не проблема, но где мое заблуждение было). Этот пост помог мне понять.

Угловые директивы - когда и как использовать компиляцию, контроллер, предварительную ссылку и пост-ссылку

0

Попробуйте добавить $ scope. $ Apply() в ваш вызов службы после $ scope.params = data.content.

Поскольку ваш запрос службы params выполняется за пределами области $ в Angular, применяя $ apply, принудительно обновляет $ scope.

Посмотрите, поможет ли это.

appbsReportsParamsService.query({
  q: "idReport="+id
}, function(data){
  $scope.params = data.content;
  $scope.$apply();
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню