$routeProvider - 具有不同 URL 的单个页面的模态
$routeProvider - modal of a single page with different URL
我有一个页面中显示的项目列表。这个想法是点击一个项目,然后打开一个显示所选项目信息的模式,并且在后台保留列表。
当模式打开时,URL 应该改变。因此,我们的想法是为每个项目设置一个特定的 URL,因此当您访问 url 时,您应该会看到模式、项目信息和主页背景。
I'm using $routeProvider for routing.
Example:
I would like to have something similar to this
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.when('/meals', {
templateUrl: 'views/meals/meals.html',
controller: 'MealsCtrl'
})
.when('/meal/:mealId', {
templateUrl: 'views/meals/meal-profile.html',
controller: 'MealCtrl'
})
/meal/:mealId 应该在模式中显示,URL 应该在模式打开时改变。
我搜索了很多,但找不到合适的答案。
感谢帮助!!
您可以指定要显示为模态的状态以及处理时,return 指定您想要的状态。例如:-
app.config(function ($stateProvider) {
$stateProvider.state('tasks', {
url: '/tasks',
templateUrl: 'tasks.html',
controller: 'TasksCtrl'
url: "/tasks/:id",
onEnter: function($stateParams, $state, $modal) {
$modal.open({
templateUrl: "show.html",
resolve: {},
controller: function($scope, $state) {
$scope.ok = function () {
$scope.$close();
};
$scope.dismiss = function () {
$scope.$dismiss();
};
}
}).result.then(function (result) {
// $scope.$close
}, function (result) {
// $scope.$dismiss
}).finally(function () {
// finally
return $state.transitionTo("tasks");
});
}
});
});
这是它的 plunker 代码:code
我也会编辑我对 routeProvider 的回答。
我有一个页面中显示的项目列表。这个想法是点击一个项目,然后打开一个显示所选项目信息的模式,并且在后台保留列表。 当模式打开时,URL 应该改变。因此,我们的想法是为每个项目设置一个特定的 URL,因此当您访问 url 时,您应该会看到模式、项目信息和主页背景。
I'm using $routeProvider for routing.
Example:
I would like to have something similar to this
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.when('/meals', {
templateUrl: 'views/meals/meals.html',
controller: 'MealsCtrl'
})
.when('/meal/:mealId', {
templateUrl: 'views/meals/meal-profile.html',
controller: 'MealCtrl'
})
/meal/:mealId 应该在模式中显示,URL 应该在模式打开时改变。
我搜索了很多,但找不到合适的答案。
感谢帮助!!
您可以指定要显示为模态的状态以及处理时,return 指定您想要的状态。例如:-
app.config(function ($stateProvider) {
$stateProvider.state('tasks', {
url: '/tasks',
templateUrl: 'tasks.html',
controller: 'TasksCtrl'
url: "/tasks/:id",
onEnter: function($stateParams, $state, $modal) {
$modal.open({
templateUrl: "show.html",
resolve: {},
controller: function($scope, $state) {
$scope.ok = function () {
$scope.$close();
};
$scope.dismiss = function () {
$scope.$dismiss();
};
}
}).result.then(function (result) {
// $scope.$close
}, function (result) {
// $scope.$dismiss
}).finally(function () {
// finally
return $state.transitionTo("tasks");
});
}
});
});
这是它的 plunker 代码:code 我也会编辑我对 routeProvider 的回答。