Ich arbeite an einem Projekt mit eckigen. In diesem Projekt habe ich eine Dropdown-Direktive erstellt. diese Richtlinie hat einen Erhaltungs-Anforderungs das Dropdown-Menüangular http funktioniert nicht unter sehr spezifischen Bedingungen
jetzt einige Seiten haben mehrere Dropdown-Listen zu füllen und unter einigen sehr speziellen Umständen die HTTP-Anforderung wil auf die Antwort vom Server nicht reagieren (altough es sagt, es ist es gesendet)
- der Antrag wurde nicht auf Vorlast getan, aber initiiert durch Winkel
die Drop-Down-Informationen verweist auf seine eigene ID (ein bisschen projektspezifische)
nur die f-Routing mit Nachladen rste Richtlinie Drop-Down-Richtlinien nachfolgende funktioniert nicht arbeiten tun
dies die Richtlinie ist
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
}
}
}
});
und das ist es in der Ansicht
.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
und hier ist ein Bild von der aufgerufen wird problem initial load alles funktioniert gut notive 2 anfragen wurden jeweils für 1 dropdown gemacht initial load
irgendwie nicht funktioniert, weil nur 1 http Aufruf navigated away and back
kehrte ich erkennen, dass dies eine sehr spezifische Frage ist, und es ist ein bisschen mehr für das Projekt als nur diese Zeilen Code, aber ich hatte wirklich gehofft, dass jemand vor sonst hat sich gegen dieses seltsame Verhalten von $ http ging (weil ich das Problem denken muss etwas mit, dass)