Angular routeProvider 和传递范围
Angular routeProvider and passing scopes
我正在使用 routeProvider 在我的应用程序中创建深度 linking。我的问题是我需要有多个级别。所以假设我有一个产品页面 link 将是:
$scope.products 包含所有产品。单击产品后,我需要能够保留 $scope.products 并将 URL 更改为 http://example.com/#/products/1。 '/1' 是产品的 ID。
在你的产品控制器上创建一个函数并调用它来导航到编辑页面http://example.com/#/products像这样...
$scope.edit = function (data) {
$window.location.href = '#/Products/Edit' + '?id=' + data.id;
};
在您的编辑控制器上调用 $routeParams 并从您的 api 加载对象,因为它可能已更改
function loadProduct()
{
productEditFactory.getProduct($routeParams.id).then(function (response) {
$scope.product = response.data;
}, function (response) {
});
}
if ($routeParams.id)
{
loadProduct();
}
else {
$scope.editMode = false;
}
您还需要用类似这样的内容更新您的 $routeProvider 定义...
.when('/Product/Edit', {
templateUrl: function (params) { return 'Products/Edit?id=' + params.id ; }
})
我正在使用 routeProvider 在我的应用程序中创建深度 linking。我的问题是我需要有多个级别。所以假设我有一个产品页面 link 将是:
$scope.products 包含所有产品。单击产品后,我需要能够保留 $scope.products 并将 URL 更改为 http://example.com/#/products/1。 '/1' 是产品的 ID。
在你的产品控制器上创建一个函数并调用它来导航到编辑页面http://example.com/#/products像这样...
$scope.edit = function (data) {
$window.location.href = '#/Products/Edit' + '?id=' + data.id;
};
在您的编辑控制器上调用 $routeParams 并从您的 api 加载对象,因为它可能已更改
function loadProduct()
{
productEditFactory.getProduct($routeParams.id).then(function (response) {
$scope.product = response.data;
}, function (response) {
});
}
if ($routeParams.id)
{
loadProduct();
}
else {
$scope.editMode = false;
}
您还需要用类似这样的内容更新您的 $routeProvider 定义...
.when('/Product/Edit', {
templateUrl: function (params) { return 'Products/Edit?id=' + params.id ; }
})