javascript - 如何将 $stateParams 从 ui-router 传递到 resolve 服务?

标签 javascript angularjs dependency-injection angular-ui-router angularjs-service

<分区>

我有一个检索单个帖子的路径和一个查询我的 API 的服务来执行此操作。但我需要将参数从 URL 传递到服务,以便我可以正确调用 API。我不知道该怎么做。

到目前为止,这是我想出的。我遗漏了与这个问题似乎无关的内容。

感谢您的帮助!

路由

myModule.config([
  '$stateProvider',
  '$urlRouterProvider',
  '$locationProvider',
  function($stateProvider, $urlRouterProvider, $locationProvider) {

    $stateProvider
      .state('post', {
        url: '/posts/:hash_id/:slug',
        templateUrl: '/js/app/views/post.html',
        controller: 'PostCtrl',
        resolve: {
          postPromise: ['posts', function(posts, $stateParams){
            //returns undefined
            console.log($stateParams);
            return posts.getOne($stateParams);
          }]
        }
      })
// etc

服务

myModule.factory('posts', ['$http', 'auth', function($http, auth){
  var o = {
    posts: [],
    post: {}
  };
  o.getOne = function(params) {
    // Returns undefined
    console.log(params);
    return $http.get('/api/v1/posts/' + params.hash_id).success(function(data){
      angular.copy(data, o.post);
    });
  };
  return o;
}])

最佳答案

你错过了在 postPromise resolve 中添加 $stateParams 依赖

代码

postPromise: ['posts', '$stateParams', function(posts, $stateParams){

关于javascript - 如何将 $stateParams 从 ui-router 传递到 resolve 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31056881/

相关文章:

asp.net-mvc - 使用基类的参数解析构造函数参数

javascript - 为什么我的 for-in 循环循环的数组大小是数组大小的两倍?

javascript - Babel + Rollup.js 导入 jQuery

gwt - GIN 绑定(bind)的范围是什么?

java - 如何在依赖注入(inject)框架(PicoContainer)中注册装饰对象?

javascript - 如果输入字段包含文本则设置变量

javascript - 当 url 是 blob url 时,html5 下载属性不起作用

javascript - 延迟加载图像以加快网站加载速度

html - 使用 AngularJS 指令进行 W3C 验证

javascript - AngularJS $resource 'GET' 访问正确的 API,但 'PUT' 和 'POST' 不访问