gpt4 book ai didi

javascript - 从 Controller 访问范围值

转载 作者:行者123 更新时间:2023-12-02 16:22:56 24 4
gpt4 key购买 nike

我正在返回一个带有工厂的对象,但无法从 Controller 访问范围值。

我刚刚开始使用 Angular,所以我想我忽略了这里的一些东西。

app.factory('Jobs', ['$http', function($http) {
return {
getJobs : function() {
return $http.get('/api/jobs');
}
}
}]);

app.controller('JobsController', ['$scope', 'Jobs', function ($scope, Jobs) {

Jobs.getJobs().success(function(data, status, headers, config) {
$scope.jobs = data;
}).error(function (error) {
console.log(error);
});

console.log($scope);
// Returns Object with jobs: Array[89]

console.log($scope.jobs);
// Returns undefined
}]);

最佳答案

当它到达你的日志语句时,你的 promise 还没有得到解决。将您的日志语句移至成功回调中,如下所示。

请注意,我使用的是 Angular 的 $log 服务而不是 console.log。如果控制台未打开,Console.log 可能会在 IE 上引发错误。 $log 可以处理这个问题,此外还允许您使用 $log.info() 和 $log.debug() 等来更好地组织日志记录级别。

app.factory('Jobs', ['$http', function($http) {
return {
getJobs : function() {
return $http.get('/api/jobs');
}
}

}]);

app.controller('JobsController', ['$scope', 'Jobs', '$log', function ($scope, Jobs, $log) {

Jobs.getJobs()
.success(function(data, status, headers, config) {
$scope.jobs = data;
$log.info($scope.jobs);
// Should work now
})
.error(function (error) {
$log.info(error);
});

$log.info($scope);
// Returns Object with jobs: Array[89]

}]);

关于javascript - 从 Controller 访问范围值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28942175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com