gpt4 book ai didi

javascript - $rootScope 和 UI-Router Resolve 的问题未持续存在

转载 作者:行者123 更新时间:2023-12-03 12:10:06 25 4
gpt4 key购买 nike

在我的应用程序中,我正在加载学生资源,然后我想访问作业资源并检索分配给学生的作业详细信息。

我如何设置学生状态

.state ('student', {url: '/student/{studentId}', templateUrl: 'partials/student.html', resolve:
{student: function (Student, $stateParams) {
return Student.get({id:$stateParams.studentId}).$promise;
}}, controller: function ($scope, student, $rootScope) {
$scope.Student = student;
$rootScope.jobId = $scope.Student.field_313_raw[0].id;
console.log($rootScope.jobId);
} })

包含作业的 View 是子状态:

    .state ('student.placement', {url: '/placement', templateUrl: 'partials/student-placement.html', resolve:
{job: function (Job, $rootScope) {
return Job.get({id:$rootScope.jobId});
}},
controller: function($scope, job) {
$scope.job = job;
}
})

如果我从我的选项卡导航到“展示位置”选项卡,我就可以很好地获取职位详细信息:

XHR finished loading: GET "https://api.knackhq.com/v1/objects/object_10/records/534535affca419b3256c2f4e".

但是,如果我刷新 Student.placement 状态,而不是浏览选项卡,它不会加载 $rootScope.jobId,因此我的 GET 请求如下所示:

XHR finished loading: GET "https://api.knackhq.com/v1/objects/object_10/records

我认为我可以使用解析属性来解决这个问题,因此为什么现在这样设置。我想也许 rootScope 在进行 GET 调用之前尚未填充,但如果我控制台记录它,它会在 GET 调用之前显示:

52cc92ac7431594423002cd4 app.js:37
XHR finished loading: GET "https://api.knackhq.com/v1/objects/object_10/records".

我的目标是即使在页面刷新后也能够加载学生的特定作业(用于书签目的)

有什么想法/建议吗?

最佳答案

我了解到范围会在页面重新加载时重建,并且能够简单地将学生对象直接加载到作业解析中。

job: function (Job, student) {
return Job.get({id:student.field_313_raw[0].id});
}

关于javascript - $rootScope 和 UI-Router Resolve 的问题未持续存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25003127/

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