Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $rootScope和UI路由器解析未持久化的问题_Javascript_Angularjs - Fatal编程技术网

Javascript $rootScope和UI路由器解析未持久化的问题

Javascript $rootScope和UI路由器解析未持久化的问题,javascript,angularjs,Javascript,Angularjs,在我的应用程序中,我正在加载一个学生资源,然后我想访问该工作资源并检索分配给该学生的工作详细信息 我是如何建立学生国的 .state ('student', {url: '/student/{studentId}', templateUrl: 'partials/student.html', resolve: {student: function (Student, $stateParams) { return Student.get({id:$stateParams.s

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

我是如何建立学生国的

.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);
    } })
包含作业的视图是子状态:

    .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
我想我可以用resolve属性来解决这个问题,所以现在就这样设置它。我想可能在进行GET调用之前没有填充rootScope,但是如果我将其记录下来,它会在GET调用之前显示:

52cc92ac7431594423002cd4 app.js:37
XHR finished loading: GET "https://api.knackhq.com/v1/objects/object_10/records".
我的目标是即使在页面刷新后也能加载学生的特定作业(用于书签)


有什么想法/建议吗?

我了解到在重新加载页面时会重新构建作用域,并且可以直接将student对象加载到作业解析中

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