可以说,有一个应用程序,可以针对不同的单位运行,具有不同的名称。之前,当用户选择另一个单元时,我们只是恢复控制器,并为新单元加载新数据,此更改未反映在网址上。但是,现在我们需要在网址中添加单位名称。 例如,我们有以下状态:
$stateProvider.state('management', {
url: '/management',
templateUrl: 'features/management/templates/management.html'
});
在浏览器中我们可以看到:
http://localhost:84/#/management
现在,当我们进入那个状态时,我需要浏览器显示如下内容:
http://localhost:84/#/unitName/management
例如我们有unit1,unit2,unit3,当用户在它们之间切换时,url将更改为
http://localhost:84/#/unit1/management,
http://localhost:84/#/unit2/management,
http://localhost:84/#/unit3/management
等等。
我可以从service获取unitName,例如unitService.js,它将返回一个单位名称作为字符串。但我不知道如何在浏览器中将此字符串添加到url。应将此单位名称添加到所有路线,但不更改它们。
我可以创建第一个函数,即在加载所有数据后将单位名称添加到浏览器URL,第二个函数,当angular开始通过url搜索状态时将删除该字符串,因此它将取代unit1 / management寻找/管理国家?
有可能吗?先感谢您。
答案 0 :(得分:0)
您可以使用notify: false
。
$stateProvider.state('management', {
url: '/:unit/management',
templateUrl: 'features/management/templates/management.html'
});
$state.go('management', {unit: 'unit1'}, {notify: false})