Я работаю над проектом с использованием угловых. в этом проекте я создал директиву выпадающего списка. эта директива делает запрос GET для заполнения в раскрывающемся менюугловой http не работает в особых условиях
теперь некоторые страницы имеют несколько выпадающих и под несколько весьма специфическими обстоятельствами запрос HTTP Виля не реагировать на ответ от сервера (Altough он говорит, что послали его)
- запрос не был сделан на начальной загрузке, но инициирован перегрузочным его с помощью углового маршрутизации
раскрывающейся информация ссылается на свой собственном идентификатор (немного конкретный проект)
только п рвые директива не работает последующие директивы выпадающие сделать работу
это директива
app.directive('dropdown', function($http){
return{
restrict:'E',
templateUrl:'/templates/dropdown.html',
scope:{
selectedid:'=',
objectdefinition:'='
},
link:function(scope){
scope.visible = false;
$http.get("/api/" + scope.objectdefinition.key)
.then(function(res) {
scope.data = res.data
},function(){
});
scope.$watch('selectedid',function(newVal){
if(newVal != null){
console.log('made')
$http.get("/api/" + scope.objectdefinition.key + '/' + scope.selectedid)
.then(function(res) {
console.log('received')
scope.selectedObject = res.data;
},function(){
});
}
})
scope.select = function(item){
scope.visible = false;
scope.selectedObject = item
scope.selectedid = item._id
}
}
}
});
и это его называют по мнению
.col-md-8.col-md-offset-2
form
.form-group
button.btn.btn-success(ng-click='save()') Save
a.btn.btn-danger(href='/{{object}}') Cancel
.form-group(ng-repeat='attribute in current.attributes' ng-switch="attribute.type")
label {{attribute.name}}
div(ng-if='!attribute.array')
input.form-control(ng-switch-when='text' placeholder='{{attribute.name}}' ng-model='$parent.$parent.$parent.data[attribute.name]')
datetimepicker(ng-switch-when='date' placeholder='{{attribute.name}}' model='$parent.$parent.$parent.data[attribute.name]')
---->dropdown(ng-switch-when='object' selectedid='$parent.$parent.$parent.data[attribute.name]' objectdefinition='definition[attribute.objectType]')
button.btn.btn-default(ng-switch-when='boolean' ng-model='$parent.$parent.$parent.data[attribute.name]' bs-checkbox)
input.form-control(ng-switch-default placeholder='{{attribute.name}}' ng-model='$parent.$parent.$parent.data[attribute.name]')
div.well(ng-if='attribute.array')
.panel.panel-default(style='display:inline-block; margin-right: 10px' ng-repeat='entry in $parent.$parent.data[attribute.name] track by $index')
.panel-body
input(ng-model='entry').form-control
и здесь картина проблема начальная нагрузка все работает прекрасное уведомление 2 запроса были сделаны каждый для 1 выпадающего списка initial load
как-то не работает, потому что только один HTTP вызов возвращается navigated away and back
Я понимаю, что это очень конкретный вопрос, и есть немного больше к проекту, чем только эти строки кода, но я действительно надеюсь, что кто-то еще до того шел против этого странного поведения $ HTTP (потому что я думаю, что проблема имеет что-то с этим)