UI-Router:参数如何映射到url

问题描述

我是Angular和UI-Router的新手,我必须使用Angular代码库。我很难理解params如何映射到URL。具体来说,topics是如何在topic 中作为/test?topic&manualMode&advancedMode注入的,我似乎找不到可以注销中间值以查看url构造方式的地方。

function StateConfig(
  $stateProvider: angular.ui.IStateProvider,breadcrumbsService: BreadcrumbsService
) {
  $stateProvider.state("testHub",{
    params: {
      topics: null
    },url: "/test?topic&manualMode&advancedMode",views: {
      main: {
        template:
          '<div class="hubContent"><iot-mqtt-client-config></iot-mqtt-client-config></div>'
      },sidebar: {
        controller: HelpControllerTutorial,controllerAs: "vm",templateUrl: "pages/mqtt/mqtt-client-help.html"
      }
    }
  });

  breadcrumbsService.addConfig("testHub",{
    name: (i18n: I18nService) => i18n("text.test"),parentState: null,reconstructBreadcrumbPath: true
  });
}

解决方法

这应该在app.js中为您工作:

.state('testHub',{
    url: "/test/:topic/:manualMode/:advancedMode",// added for dynamic ID params
})

然后,您在uissings.html中的ui-sref将(topic或manualMode或advancedMode)附加到URL,您将可以在$ stateParams中的控制器中访问它。 >