AngularJS UI 路由器:将变量添加到状态范围而不在 URL 中指定

AngularJS UI Router: add variable to scope of state without specifying it in URL

我想将属性 film.title 传递给状态模板 而不必在状态 URL.

中指定它

index.html:

<a ui-sref="showtimes({ filmId: film.uid, filmTitle: film.title })">

app.js:

    .state('showtimes', {
        url: '/showtimes/:filmId',
        controller: function($scope, $http, $stateParams) {
            $http.get('api/showtimes/?film_id=' + $stateParams.filmId).success(function(data) {
                $scope.showtimes = data;
            });
        },
        templateUrl: 'static/showtimes.html'
    });

showtimes.html:

<p>{{film}}</p>

我尝试将 $scope.film = $stateParams.filmTitle; 添加到控制器。它没有用。我也试过 $scope.film = $state.params.filmTitle; 没有更多的运气。

您可以使用 params 属性:

指定非 URL 参数
.state('showtimes', {
  url: '/showtimes/:filmId',
  params: {
    filmTitle: undefined // or "default Title"
  },
  controller: function($scope, $http, $stateParams) {
    console.log($stateParams.filmTitle);
    // ...
  },
  // ...
});