页面编辑 - 如何从 url 参数填充范围变量?
Page Editing - How to populate scope variable from url parameter?
我有一个页面用于编辑现有页面,方法是填充输入表单并为页面 template/partial 创建一个 JSON 文件。
本质上,它包括:<input ng-model="model.page_title" />
和$http.post('edit_json_file.php', JSON.stringify(model))
但是,要编辑页面,我需要先加载它的(现有)JSON,这样我才能为输入表单填充这些模型。我正在用另一个输入来做到这一点:
<input ng-model="url_of_page_to_edit" />
这显然需要用户手动键入现有页面的URL(加载相应的JSON文件)进行修改。 我想改变它。
最好在我要编辑的每个页面上都有一个编辑按钮。单击该按钮后,它会将我重定向到我的页面编辑器,它将加载所需的 JSON 并像往常一样填写输入。为此,我需要知道加载哪个 JSON(如果页面是 /page.html
,JSON 将是 page.json
)。这就是为什么我考虑 将 URL 作为参数 传递给我的页面编辑器,例如:
website.com/edit_pages?url=page_to_edit
或
website.com/edit_pages/page_to_edit
假设我有这些 links,检索这些 URLs 的最佳做法是什么?
我正在使用 ui.router
,所以我的配置是这样的:
$stateProvider.
state("editPages", {
title: "Edit",
url: "/edit_pages",
templateUrl: "/partials/edit_pages.html",
controller: "editPagesCtrl"
})
我仍然想通过手动输入 URLs
来编辑页面
如果我需要以 /edit_pages/page_to_edit
的形式将 $stateParams
与 link 一起使用,那么我该如何处理空案例 /edit_pages/
?
如果我需要以 /edit_pages?url=page_to_edit/
的形式将 URLs 作为参数传递(如 PHP),那么我需要在我的配置中更改什么才能使其工作?
获取页面Link
var url = $state.href($state.current.name, $state.params, {absolute: true})
这将给出当前页面的绝对 url。然后你可以做一个 $location("edit_pages?url="+url)
.
将 URL 作为查询字符串传递
为了传递查询字符串格式(PHP 格式)你会导致这样的事情:
.state('editPages', {
url: "/edit_pages?url",
...
})
然后 /edit_pages?url=page_to_edit
将按预期工作。
点击按钮后使用 $state.go();
放置映射(如果需要)并根据输入的输入更改状态。
$state.go('editPages')
我有一个页面用于编辑现有页面,方法是填充输入表单并为页面 template/partial 创建一个 JSON 文件。
本质上,它包括:<input ng-model="model.page_title" />
和$http.post('edit_json_file.php', JSON.stringify(model))
但是,要编辑页面,我需要先加载它的(现有)JSON,这样我才能为输入表单填充这些模型。我正在用另一个输入来做到这一点:
<input ng-model="url_of_page_to_edit" />
这显然需要用户手动键入现有页面的URL(加载相应的JSON文件)进行修改。 我想改变它。
最好在我要编辑的每个页面上都有一个编辑按钮。单击该按钮后,它会将我重定向到我的页面编辑器,它将加载所需的 JSON 并像往常一样填写输入。为此,我需要知道加载哪个 JSON(如果页面是 /page.html
,JSON 将是 page.json
)。这就是为什么我考虑 将 URL 作为参数 传递给我的页面编辑器,例如:
website.com/edit_pages?url=page_to_edit
或
website.com/edit_pages/page_to_edit
假设我有这些 links,检索这些 URLs 的最佳做法是什么?
我正在使用 ui.router
,所以我的配置是这样的:
$stateProvider.
state("editPages", {
title: "Edit",
url: "/edit_pages",
templateUrl: "/partials/edit_pages.html",
controller: "editPagesCtrl"
})
我仍然想通过手动输入 URLs
来编辑页面如果我需要以 /edit_pages/page_to_edit
的形式将 $stateParams
与 link 一起使用,那么我该如何处理空案例 /edit_pages/
?
如果我需要以 /edit_pages?url=page_to_edit/
的形式将 URLs 作为参数传递(如 PHP),那么我需要在我的配置中更改什么才能使其工作?
获取页面Link
var url = $state.href($state.current.name, $state.params, {absolute: true})
这将给出当前页面的绝对 url。然后你可以做一个 $location("edit_pages?url="+url)
.
将 URL 作为查询字符串传递
为了传递查询字符串格式(PHP 格式)你会导致这样的事情:
.state('editPages', {
url: "/edit_pages?url",
...
})
然后 /edit_pages?url=page_to_edit
将按预期工作。
点击按钮后使用 $state.go();
放置映射(如果需要)并根据输入的输入更改状态。
$state.go('editPages')