suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Warum kann ich über $stateParams keine Parameter zwischen übergeordnetem und untergeordnetem Status übergeben? Hängt es mit der Vater-Sohn-Beziehung zwischen Staat und Staat zusammen?

  1. Routing-Einstellungen (es besteht eine Eltern-Kind-Beziehung zwischen den beiden Staaten):

.state("tab.my-profile", {
  url: "/my/profile",
  views: {
    "tab-my": {
      templateUrl: "templates/tab-my-profile.html",
      controller: "MyProfileCtrl"
    }
  }
})
  .state("tab.my-profile-mobileinput", {
    url: "/my/profile/mobileinput",
    views: {
      "tab-my": {
        params: {"mobile": null}
        templateUrl: "templates/util-mobile-input.html",
        controller: "MobileInputCtrl",
      }
    }
  })

2. Code im Controller des Mutterstaates:

.controller("MyProfileCtrl", function ($scope, $state) {
  $scope.goToMobileInput = function () {
    $state.go("tab.my-profile-mobileinput", {"mobile": "123456"})
  };
})

3. Code im Controller des untergeordneten Staates:

.controller("MobileInputCtrl", function ($scope, $stateParams) {
  alert($stateParams.mobile);  // undefined
})

Kann zum Unterstatus springen, aber keine Parameter im Controller des Unterstatus empfangen (das beim Zugriff auf die Parameter erhaltene Ergebnis ist undefiniert, nicht „123456“). Nach der Lektüre der Informationen im Internet sollte dieses Schreiben korrekt sein. Hängt es mit der Vater-Sohn-Beziehung zwischen Staat zusammen?

淡淡烟草味淡淡烟草味2778 Tage vor964

Antworte allen(2)Ich werde antworten

  • 黄舟

    黄舟2017-05-27 17:46:33

    你的router定义的有问题,params需要和url, views在同一级,views正如字面意思那样,是指定ui的,你在其中指定了params就有问题了,需要改成如下这样:

      .state("tab.my-profile-mobileinput", {
        url: "/my/profile/mobileinput",
        params: {"mobile": null},
        views: {
          "tab-my": {
            templateUrl: "templates/util-mobile-input.html",
            controller: "MobileInputCtrl"
          }
        }
      })

    Antwort
    0
  • ringa_lee

    ringa_lee2017-05-27 17:46:33

    $broadcast,我记得这种应该采用事件广播,可以将事件从父级作用域传播至子级作用域,你可以百度一下相关内容,应该能够解决

    Antwort
    0
  • StornierenAntwort