如何在网址中将url:'/ add / {id}'的网址重命名为url:'/ add'

时间:2016-12-14 11:07:57

标签: angularjs url

如何在网址中将url: '/add/{id}'的网址重命名为url: '/add'。我不想在网址中显示我的ID。如何从AngularJs中的url中删除id?

我的代码:

.state('app.useredit', {
      url: '/user-edit/:userId',
      data: {
        auth: true
      },
      views: {
        'main@app': {
          template: '<user-edit></user-edit>'
        }
      },

3 个答案:

答案 0 :(得分:1)

您需要使用params

像这样:

.state('app.useredit', {
      url: '/user-edit',
      params: {
      userId:null
     }
      data: {
        auth: true
      },
      views: {
        'main@app': {
          template: '<user-edit></user-edit>'
        }
      },

 $state.go('app.useredit',{userId:'u123'})

答案 1 :(得分:0)

要不在网址中公开ID,请使用服务来保存&#34; id&#34;在里面并通过控制器抓住它。

Here is a related answer: "Hide param value (guid) in an URL"

答案 2 :(得分:0)

您可以创建setget id的服务,然后在控制器中注入该服务以获取该ID。

服务:

app.service('setGetId', function() {
  var id = '';
    getId: function() { return id; },
    setId: function(requestId) { id = requestId; }
});

控制器:

app.controller('myCtrl1', ['setGetId',function(setGetId) {

  // To set the id from the one controller  
  setGetId.setId(id);

}]);

app.controller('myCtrl2', ['setGetId',function(setGetId) {

  // To get the id from the another controller  
  setGetId.getId();

}]);