在URL中显示用户名

时间:2015-06-11 08:29:33

标签: angularjs twitter-bootstrap routes

我有一个单页Angular + bootstrap应用程序,用户可以在文本输入中输入用户名(无密码),用户信息将显示在屏幕上。

我希望这样做,以便当屏幕上显示用户的信息时,URL会相应地更改。

例如:输入此网址应直接进入浏览器:localhost:3000/user1应立即打开user1的信息,而无需将其输入我的应用主屏幕上的文本框中。

此外,当您加载应用主屏幕并在文本输入和搜索中输入user2时,在将用户信息加载到屏幕后,该网址应自动更改为localhost:3000/user2。< / p>

您应该知道我的应用是单页应用,并且尚未引入角度路线。

我只是想知道我应该采取什么方法。感谢。

1 个答案:

答案 0 :(得分:2)

您可以实施至少2种可能的解决方案:

解决方案1。

创建两个api get方法,一个是UserExist(),另一个是getUserDetails()。

输入用户名后,点击查找, 如果isUserExist()返回true,则使用$ location.path('/:userId')重定向到用户详细信息页面,其中“:userId”= new_user_name

如果没有,请显示消息“用户不存在”。

解决方案2.(我会选择)

将您的主网址设为localhost:3000 / user?name = user1

基本上使用param'name'。

点击查找并加载新用户详细信息后, 您可以动态更新'name'参数,例如$ location.search('name','user2')

在$ routeProvider.when()语句中设置'reloadOnSearch:false'

    $routeProvider.when('/user', {
        templateUrl: 'some_user_template.html',
        controller: SomeUserCtrl,
        reloadOnSearch: false
    })

How can I set a query parameter in AngularJS without doing a route?

您将在屏幕上加载新的用户详细信息并使用更新的网址

    localhost:3000/user?name=user2