Angular UI-Router使用基于传递值的模板

时间:2015-03-13 14:09:18

标签: angularjs angular-ui-router

我的Angular 1.3应用程序中有一个状态:

    .state('department.filetransfer', {
    url: '/filetransfer/:deptID',
    templateUrl: function($stateParams, $log) {
        return 'modules/department/templates/department.filetransfer.'+$stateParams.deptID+'.html';
    },
    controller: 'DeptFiletransferCtrl as ftc',
    data: {
        pageTitle: 'filetransfer',
        access: 'public'
    }
});

然后在我的应用程序中,我有一个链接,如

ui-sref="department.filetransfer.accounting"

但是我收到了控制台错误

Error: Could not resolve 'department.filetransfer.accounting' from state 'department'

我错过了什么?

1 个答案:

答案 0 :(得分:0)

a working example

如何传递param的方法是通过对象 {paramName1:value1, paramName2: value2}

ui-sref="department.filetransfer({deptID:accounting})"

上述示例适用于 accounting 作为$scope中的变量。

如果我们需要传递字符串值,我们应该这样做:

ui-sref="department.filetransfer({deptID:'accounting'})"

如此处所述

ui-sref

  

将链接(<a>标记)绑定到状态的指令。如果状态具有关联的URL,则该指令将自动生成&amp;通过$state.href()方法更新href属性。单击该链接将触发带有可选参数的状态转换。

     

浏览器本身也会处理中键点击,右键单击以及按住Ctrl键单击链接。

     

您也可以在ui-sref中使用相对状态路径,就像传递给$state.go()的相对路径一样。您只需要知道路径是相对于链接所在的状态,换句话说是加载包含链接的模板的状态。

     

您可以使用 $state.go() 属性指定要传递给ui-sref-opts的选项。选项仅限于locationinheritreload