获取和设置URL以及URL的不同部分是Application Design的基本部分。
angularjs和javascript都提供了获取/设置URL和URL部分的方法。我正在寻找以下信息:
以下是我目前所知道的以及我想要的内容:
HTTP:\\www.name.com?mykey=itemID
将阻止angularjs重新加载页面。因此,我可以通过在末尾添加/更改字符串来更改URL,从而为页面提供新信息,并防止页面重新加载。window.location.href = "#Store/" + argUserPubId + "?itemID=home";
home
是itemID字符串,我希望代码只是加载页面,而不是显示更详细的信息。itemID
,我希望代码能够显示更详细的信息。templateURL:
中使用,而不是发送到浏览器地址栏的网址。似乎即使路由没有重新加载浏览器,模板中的页面也会重置为默认设置。因此,如果我有一个类集,更改URL,该类将被设置回默认值。我想避免这样的事情。
when('/ Store /:StoreId',{ templateUrl:function(params){return'Client_Pages / Stores.php?storeID ='+ params.StoreId;}, controller:'storeParseData' })。
以上代码在浏览器中检测到http:\\www.name.com\Store\StoreID
,但在页面中发现http:\\www.name.com\Client_Pages/Stores.php?storeID=StoreID
。
在上面的代码中,一个函数用于angularjs路由templateURL:
以动态设置templateURL。
因此,当用户点击某些内容以查看项目的详细信息时,我应该如何配置URL?我应该使用angularjs $location
还是window.location.href
?我应该使用更长的URL,包含更多参数,哈希爆炸或查询字符串吗?我应该使用:
http:\\www.name.com\Store\StoreID\ItemID
或http:\\www.name.com\Store\StoreID#ItemID
或http:\\www.name.com\Store\StoreID?ItemID
或http:\\www.name.com\Store#StoreID?ItemID
或答案 0 :(得分:0)
可以在不重新加载页面的情况下更改URL中的搜索字符串。
reloadOnSearch: false
必须在路由中使用。
myApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
//Note that there is both a 'Stores' and a 'Store' singular routing. Stores plural has no controller.
when('/Stores', {
templateUrl: 'Client_Pages/Stores.php'
}).
/*This is a little complicated. See notes at top of page: */
when('/Store/:StoreId', {
templateUrl: function(params){return 'Client_Pages/Stores.php?storeID=' + params.StoreId;},
controller: 'storeParseData',
reloadOnSearch: false
}).
when('/Offered', {
templateUrl: 'Client_Pages/Offered_Menu.php'
}).
when('/Items/:CatId', {
templateUrl: function(params){return 'Client_Pages/Offered_Menu.php?cat=' + params.CatId;},
controller: 'CommonController',
reloadOnSearch: false
}).
以下是我正在使用的完整策略的所有部分:
$location.search('itemID', picID);
创建的搜索字符串更改,以获取更多详细信息。以下是它的工作原理:
reloadOnSearch: false
设置,“on load”代码无法运行。$location.search('key', 'value')
更改搜索字符串,然后触发代码以显示详细信息。 (不是来自路由控制器。)如果用户自己导航网站,那么这是一个3个步骤
如果将带有搜索字符串的详细链接粘贴到浏览器中,则所有三个步骤都按顺序完成,并且它将成为一个步骤。