我正在使用角度进行项目。 在这个项目中,我创建了一个下拉指令。 该指令执行get请求以填充下拉菜单
现在有些页面有多个下拉列表,在一些非常具体的情况下,http请求不会响应来自服务器的答案(尽管它说它发送了它)
下拉信息引用它自己的ID(特定项目项目)
只有第一个指令不起作用,后续下拉指令才能正常工作
这是指令
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
某种程度上不起作用,因为只返回了1个http调用 navigated away and back
我意识到这是一个非常具体的问题,除了这些代码行之外还有更多的项目,但我真的希望之前的其他人已经走过这种奇怪的$ http行为(因为我认为问题与此有关)
答案 0 :(得分:0)
angular的http服务似乎有问题
然而这似乎有效,但我不知道为什么角度的版本不起作用
$.get("/api/" + scope.objectdefinition.key + '/' + scope.selectedid,function(res) {
scope.selectedObject = res;
scope.$apply();
});