首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用户界面路由器解析在第一次加载时显示先前的解析结果,有时在重新加载时根本不显示。

用户界面路由器解析在第一次加载时显示先前的解析结果,有时在重新加载时根本不显示。
EN

Stack Overflow用户
提问于 2015-06-01 02:44:52
回答 1查看 61关注 0票数 0

所以我的结构是这样的。

相关州法典:

代码语言:javascript
复制
       resolve:{
          projectPromise: ['$stateParams', 'projects', 'session', function($stateParams, projects, session){
            projects.getProject($stateParams.id).success(function(data){
              session.currentProject = data;
            });

          }]
        }

getProject:

代码语言:javascript
复制
  o.getProject = function(project_id, container){
   return $http.get('/project/' + project_id);
  };

在相关控制器内部:

代码语言:javascript
复制
$scope.currentProject = session.currentProject;

以及相关模板的内部:

代码语言:javascript
复制
{{currentProject.title}}

当我第一次导航到/ project /:projectid时,它会显示正确项目的标题。但是,如果我返回并导航到一个新项目,它仍然显示第一个项目的标题。然后,当我刷新时,它会显示正确的标题。如果我在那之后一直保持清爽,有时标题根本就不会出现。我确信,我的许多问题都源于对如何构造所有这些结构缺乏很好的理解,比如调用getProject的确切位置,以及getProject是否应该将$http.get请求的结果存储在作为参数传递的容器中,或者像现在一样返回。任何建议都是非常感谢的,谢谢!

EN

Stack Overflow用户

回答已采纳

发布于 2015-06-01 03:01:06

您需要从resolve函数返回承诺,否则在承诺解决之前角将导航到状态:

代码语言:javascript
复制
   resolve:{
      projectPromise: ['$stateParams', 'projects', 'session', function($stateParams, projects, session){

        // Add `return` statement here:
        return projects.getProject($stateParams.id).success(function(data){
          session.currentProject = data;
        });

      }]
    }
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30564956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档