在父解析中使用$ stateParams

时间:2015-07-07 19:01:16

标签: angularjs angular-ui-router

我想加载页面之前加载一份食谱列表。在任何子州都需要这个清单。取决于$stateParam我要预先过滤此列表。

问题

  1. 我可以从父状态以任何方式访问$stateParam吗?
  2. 使用服务并在子状态下加载数据并通过服务传递它是否是更好的设计(哪里有缺点)?
  3. 我避免使用第二种解决方案,因为解析允许我在子状态之间切换而不重新加载数据(或者不检查数据是否已经加载)。

    研究 我知道父状态不知道子状态发生了什么。但是,子状态知道父状态中的变量。我想这就是这个解决方案的用途: angular ui-router and accessing child state params from parent

    但是我没有让它工作,我也不想为父状态设置一个url,因为它永远不会单独加载。

    代码

      .state "widget",
        templateUrl: "app/widget/widget.html"
        controller: "WidgetCtrl"
        resolve:
          Recipes: ($http, $stateParams) ->
            console.log "$stateParams.oldContext #{$stateParams.oldContext}"
            return $http.get('/getProovenRecipes').then( (result) ->
              #console.log result.data
              return result.data
            )
      .state "widget.recipes",
        views:
          'recipes':
            templateUrl: "app/widget/recipes/recipes.html"
            controller: "RecipesCtrl"
            controllerAs: "recipesController"
      .state "widget.recipes.tags",
        url: "/widget/{context}"
        views:
          'tags@widget':
            templateUrl: "app/widget/tags/tags.html"
            controller: "TagCtrl"
            controllerAs: "tagController"
    

0 个答案:

没有答案