如何使用ui-rout和AngularJS

时间:2015-07-24 12:07:08

标签: angularjs templates compilation load angular-ui-router

我有以下状态。

    .state('categories', {
        url: '/categories',
        templateUrl: 'categories',
        controller: 'CategoriesController',
    })

模板网址加载:

<div>
    <a ui-sref="categories.bob">my link text</a>
</div>

ui-sref未编译。解决这个案子的正确方法是什么?

- [编辑] - 我的意思是由AnulgarJS编译的html加载表单模板。例如

 <a ui-sref="categories.bob">my link text</a>

应该是

 <a ui-sref="categories.bob" href="#/categories/bob">my link text</a>

2 个答案:

答案 0 :(得分:0)

我假设你想传递bob作为可选参数?如果是这种情况,请尝试以下方法:

定义新状态:

.state('categories.name', {
    url: '/:name',
    templateUrl: 'subcategorytemplate',
    controller: 'SubCategoryController',
})

路线:

<div>
    <a ui-sref="categories.name({name:"bob"})">my link text</a>
</div>

您可以通过调用$stateParams在ui-router的$stateParams.name服务中找到您的路由参数。有关详细信息,请查看here

答案 1 :(得分:0)

事实上我发现了我的问题。我的禁食状态网址错了。

.state('categories.category', {
        url: '/:category',
        templateUrl: function($params) {
            console.log($params); 
            return 'categories/' + $params.category;
        },
    })

但是如果我使用templateUrl加载html,我仍然不会强调如何以及为什么<a ui-sref="someUrl">被呈现为<a ui-sref="someUrl" href="#>someUrl">。如果没有生成href属性。那么有没有办法让它生成href属性呢?

如何在父ui-view中加载嵌套视图?