角度状态/路由器与url params无法正常工作

时间:2015-12-07 01:28:50

标签: javascript angularjs routes angular-ui-router state

我在使用状态和参数加载模板时遇到困难。

当我导航到/ contacts

时,以下代码效果很好
$stateProvider
    .state('contacts', {
        url: '/contacts',
        templateUrl: 'views/resources/contacts.html',
        controller: 'ContactsController'
    })

当我尝试导航到/ contacts / 123时,我使用下面的代码。

编辑:我只使用下面的代码,唯一的区别是我添加了" /:id"到网址。

$stateProvider
    .state('contacts', {
        url: '/contacts/:id',
        templateUrl: 'views/resources/contacts.html',
        controller: 'ContactsController'
    })

这是我开始遇到问题的时候。该页面无法加载,我收到一个控制台错误,指出我无法实例化模块应用(link to angular site from console error)

有人可以帮帮我吗?我不知道为什么当我尝试使用params时,一切都开始破坏了:(

2 个答案:

答案 0 :(得分:0)

尝试在.state定义中定义params,如下所示:

$stateProvider
.state('contacts', {
    params: { id: null },    // note null is the default value if no param is specified
    url: '/contacts/:id',
    templateUrl: 'views/resources/contacts.html',
    controller: 'ContactsController'
})

答案 1 :(得分:0)

事实证明,当我添加“/:id”时,我在index.html页面上调用脚本src文件的方法没有被正确调用。我有一个额外的。在路径前面,导致我的角度文件,服务,指令等..没有正确加载/调用。

我离开了这个:

<script src="./app/app.js"></script>

到此:

<script src="/app/app.js"></script>

感谢所有帮助过这个的人!