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);
// ...
},
// ...
});
我想将属性 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
属性:
.state('showtimes', {
url: '/showtimes/:filmId',
params: {
filmTitle: undefined // or "default Title"
},
controller: function($scope, $http, $stateParams) {
console.log($stateParams.filmTitle);
// ...
},
// ...
});