我正在构建一个MEAN应用程序。我遇到的问题是,在一个视图中,当我向控制器写入第二个$http.get
时,我的$ scope被禁用。
以下是不工作的范围
使用此控制器(// GET Media部件禁用示波器并导致错误)
<script>
var app = angular.module('myApp', []);
app.controller('projectCtrl', function($scope, $http) {
$scope.myVar = false;
$scope.toggle = function() {
$scope.myVar = !$scope.myVar
};
$http.get('/profile/project/').then(function (res){
$scope.projects = res.data;
});
//GET Media
$http.get('/uploads/media/'+projectId).then(function(data){
console.log('Medien-Daten erhalten');
$scope.media = data;
});
});
</script>
来自德国的致敬,
大卫
答案 0 :(得分:1)
感谢@Christopher Marshall,我忘了为projectId
定义一个变量。
现在就这样工作:
$http.get('/profile/project/').then(function (res){
$scope.projects = res.data;
var projectId = $scope.projects._id;
});
//GET Media
$http.get('/uploads/media/'+projectId).then(function(data){
console.log('Medien-Daten erhalten');
$scope.media = data;
});
});
答案 1 :(得分:1)
因此,如果您只获得项目ID,则应按照以下方式构建应用程序:
app.controller('projectCtrl', function($scope, $http) {
$scope.myVar = false;
$scope.toggle = function() {
$scope.myVar = !$scope.myVar
};
$http
.get('/profile/project/')
.then(function (res){
$scope.projects = res.data;
var projectId = $scope.projects._id;
return $http.get('/uploads/media/'+projectId);
})
.then(function(data){
console.log('Medien-Daten erhalten');
$scope.media = data;
});
});
我已经改变了承诺,所以他们一个接一个地发生。