相关疑难解决方法(0)

AngularJS:使用ui-router将对象传递到某个状态

我希望能够转换到状态并使用ui-router传递任意对象.

我知道通常使用$ stateParams,但我相信这个值被插入到URL中,我不希望用户能够为这些数据添加书签.

我想做这样的事情.

$state.transitionTo('newState', {myObj: {foo: 'bar'}});

function myCtrl($stateParams) {
   console.log($stateParams.myObj); // -> {foo: 'bar'}
};
Run Code Online (Sandbox Code Playgroud)

有没有办法在不将值编码到URL的情况下执行此操作?

javascript angularjs angular-ui-router

119
推荐指数
5
解决办法
12万
查看次数

使用ui-router的"bool"param类型的正确方法是什么?

我一直在尝试使用ui-router的param类型,似乎无法使它们正确.

$stateProvider.state({ name: 'home.foo', url: '/foo/{isBar:bool}', controller: function() { }, templateUrl: 'foo.html' });

我的期望是我应该能够像这样过渡到那个州:

$state.go(home.foo, { isBar: false })

要么

ui-sref="home.foo({ isBar: false })"

但是在结果$ stateParams中你会看到isBar:true

看一下' bool'param类型的编写方式,我认为true/false应该在url上编码为0/1,但这不会发生.如果在$ state.go的params中使用0/1然后它工作并被解码为false/true但是为了进一步混淆问题,如果使用ui-sref则这不起作用.

希望这个掠夺者会更好地解释它.任何提示赞赏!

编辑:我使用bool param类型的目的是在$ stateParams中以布尔数据类型结束

angularjs angular-ui-router

11
推荐指数
2
解决办法
6245
查看次数

Angular ui路由器解析查询参数到布尔值

考虑具有查询参数的状态的这种情况.我想将它们声明为标志,这样我就可以在控制器中获取并获取true,false或者undefined

$stateProvider.state('foo.bar', {
         url: '/foobar?flag1&flag2',
         templateUrl: 'foo/bar/template.tpl.html',
         controller: 'FooBarCtrl'
});

myModule.controller('FooBarCtrl', function($stateParams){
         $stateParams.flag1 <<--- is string but can it be of type bool?
         $stateParams.flag2 <<--- is string but can it be of type bool?

});
Run Code Online (Sandbox Code Playgroud)

一些URL示例:

/foobar?flag1=true    -->> should yield {flag1: true, flag2: undefined}
/foobar?flag2=false    -->> should yield {flag1: undefined, flag2: false}
/foobar?flag1=false&flag2=true    -->> should yield {flag1: false, flag2: true}
/foobar?flag1=1&flag2=0    -->> should yield {flag1: true, flag2: false}

etc...
Run Code Online (Sandbox Code Playgroud)

目前$ stateParams只提供字符串.有没有让路由器解析params作为标志?这比在控制器中手动解析要优雅得多.

angularjs angular-ui-router

4
推荐指数
2
解决办法
5134
查看次数

标签 统计

angular-ui-router ×3

angularjs ×3

javascript ×1