网址外的状态参数?

时间:2014-07-21 07:42:00

标签: angularjs angular-ui-router

有没有办法将参数传递给状态而不在url中表示?

我们说我有以下状态:

.state('accounts.content.viewaccounts.details.contacts.edit', {
        url:'/edit/{contactId:[0-9]{1,10}}',
        templateUrl: 'app/common/templates/StandardForm.html',
        resolve: {blahblah}

当我使用$ state.go导航到该状态时,是否可以将可选参数发送到此状态,而无需将其添加到网址中?

2 个答案:

答案 0 :(得分:1)

您可以使用共享属性服务并在控制器之间传递元素:

.service('sharedProperties', function () {
    var item = null;
    return {
        getItem: function () {
            return item;
        },
        setItem: function(value) {
            item = value;
        }
    }});

然后在转移到控制器之前使用:

sharedProperties.setItem(your-item);

并在加载新控制器后使用:

var model = sharedProperties.getItem();

答案 1 :(得分:0)

没有。不是没有使用像服务这样的东西。请参阅@ Liad的回答