如何在不显示URL的情况下将参数传递给Angularjs的router-ui?

萨奇布·阿里(Saqib Ali)

我有一个使用ui-router来管理我的应用程序的状态和URL路由的AngularJS应用程序

这是一个示例状态:

.state('my_state', {
    url: '/my_state/:arg1',
    templateUrl: 'http://www.example.com/html/my_file.html',
    controller: 'MyCtrl'
})

这是控制器:

app.controller('MyCtrl', function($stateParams) {
    console.log('arg1 = ', $stateParams.arg1)     
);

这是我从另一个控制器中派人去的方式:

$state.go('my_state', {'arg1': 'hello'});

$state.go执行上面行后,我将发送到该URL,/my_state/hello并且看到以下内容打印到浏览器的调试窗口中:

arg1 = hello

现在这是我的问题:是否可以向该控制器添加另一个参数,例如:

  1. 它被命名为arg2
  2. 它是可选的。
  3. 如果提供,则可以在中访问它MyCtrl
  4. 它不会显示在URL中。

如果是这样,请告诉我如何。

阿米尔·侯赛因·梅尔瓦尔齐(Amirhossein Mehrvarzi)

默认情况下,UI路由器中的路由参数是可选的。例如,您的代码(如下)说这arg1是一个可选参数。因此,两者/my_state/:arg1/my_state/都可以使用,但不能/my_state(没有斜杠)。它还显示arg1URL中值。

.state('my_state', {
    url: '/my_state/:arg1',
    templateUrl: 'http://www.example.com/html/my_file.html',
    controller: 'MyCtrl'
})

您可以根据自己的喜好向此控制器添加另一个可选参数:

.state('my_state', {
    url: '/my_state/:arg1',
    templateUrl: 'http://www.example.com/html/my_file.html',
    controller: 'MyCtrl',
    params: {
        arg2: { value: null }
    }
})

要隐藏参数,您必须在中定义它们params

需要注意的是squash属性(内部params)配置默认的参数值是如何在这个URL时,当前的参数值是一样的默认值如果未设置squash,它将使用配置的默认squash策略。

工作柱塞

更新资料

使用内部控制器的另一个工作柱塞$state.go('my_state', {'arg1': 'hello', 'arg2': 'world'});

请注意, 之间不存在功能上的差异ui-sref,并$state.go激活状态

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

UI Router:如何将参数传递给嵌套视图

将更新的参数传递给嵌套的ui-view,AngularJS和UI-Router

如何使用ui-router中的ui-sref将参数传递给控制器

Angular / UI-Router-如何在不刷新所有内容的情况下更新URL?

如何在没有全局变量的情况下将变量从server.R传递到ui.R?

AngularJS:ui.router不显示模板

Angular-UI-Router:如何将参数传递给$ state.get?

如何在不更改 UI 的情况下添加 NavigationLink?

如何在不跳帧的情况下更新 UI

如何使用Angularjs ui-router和组件在URL中传递参数而不是?

如何通过语义ui将参数传递给Dropdown组件?

如何在不调用控制器上的$ onInit的情况下使用ui-router更新路由

如何使用AngularJS UI Router .go()将搜索参数添加到URL?

如何在不安装material-ui的情况下安装Material-UI Docs?

如何在不冻结UI的情况下使用QProcess循环的输出更新UI?

AngularJS:使UI-Router在没有URL的情况下工作

将resolve参数传递给UI Router中的angular1组件

如何在不展开包装的情况下将ref传递给方法/函数参数?

如何在不覆盖父范围的情况下将参数传递给指令?

如何在不重复自己的情况下将某些参数传递给PowerShell cmdlet?

如何在不访问Java母函数的情况下将参数传递给回调

如何在不调用函数的情况下将参数传递给函数?

如何在没有for循环的情况下将参数传递给Bash脚本变量?

如何在不进行for循环的情况下将任意数量的参数传递给R函数?

如何在不带参数的情况下将大数据集传递给函数

如何在重定向的情况下使用烧瓶将参数传递给 HTML 表单

如何在不导致透支的情况下将背景色添加到UI中的特定组件?

如何在没有 UI 挂起的情况下将 QtcpSockets 连接到大约 100 个服务器?

如何在不进行2向绑定的情况下将ngModel传递给AngularJS组件?