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

标签 javascript angularjs

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

我如何设置学生状态

.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/

相关文章:

php - *仅*在数据库表更改(添加行)时刷新 html 页面部分

javascript - Angular.js 'Unknown provider: iProvider <- i' 生产错误

javascript - 在 PreventDefault 后提交简历表单

javascript - Highcharts 饼图 - 在图例单击时偏移单个切片

javascript - angular.extend $scope 上的 Getters 和 Setters

angularjs - 在嵌套的 Angular 指令中使用 ng-transclude 和 ng-include

javascript - 如何通过 Google Maps API 找到最近的十字路口?

javascript - 更改 MongoDB 文档/对象中的所有 MongoDB 对象 ID

javascript - 合并两个 JavaScript 脚本

javascript - Angular js :unexpected token error shown in android studio console, 但在浏览器中工作正常