相关疑难解决方法(0)

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

我需要传递并接收两个参数到我想转移到使用ui-srefui-router的状态.

比如使用以下链接将状态转换为homewith foobar参数:

<a ui-sref="home({foo: 'fooVal', bar: 'barVal'})">Go to home state with foo and bar parameters </a>
Run Code Online (Sandbox Code Playgroud)

控制器中的接收foobar值:

app.controller('SomeController', function($scope, $stateParam) {
  //..
  var foo = $stateParam.foo; //getting fooVal
  var bar = $stateParam.bar; //getting barVal
  //..
});     
Run Code Online (Sandbox Code Playgroud)

我在控制器中得到undefined$stateParam.

有人可以帮我理解如何完成它吗?

编辑:

.state('home', {
  url: '/',
  views: {
    '': {
      templateUrl: 'home.html',
      controller: 'MainRootCtrl'

    },

    'A@home': {
      templateUrl: 'a.html',
      controller: 'MainCtrl'
    },

    'B@home': {
      templateUrl: 'b.html',
      controller: …
Run Code Online (Sandbox Code Playgroud)

html javascript angularjs angular-ui angular-ui-router

364
推荐指数
3
解决办法
37万
查看次数

Angular UI-Router更多可选参数在一个状态中

如何在不使用查询字符串且仅使用一个路由名称的情况下允许可选参数到路由中?我目前正在指定每个路线五次以允许任何部件组合:

所有部件必须是可选的.路线必须解决任何变化.

.state("login", { url: "/login", templateUrl: "login.html", params: { a: null, b: null, c: null, d: null } })
.state("loginA", { url: "/login/:a", templateUrl: "login.html", params: { b: null, c: null, d: null } })
.state("loginAB", { url: "/login/:a/:b", templateUrl: "login.html", params: { c: null, d: null } })
.state("loginABC", { url: "/login/:a/:b/:c", templateUrl: "login.html", params: { d: null } })
.state("loginABCD", { url: "/login/:a/:b/:c/:d", templateUrl: "login.html" })
Run Code Online (Sandbox Code Playgroud)

必须有一个更容易/更清洁/更少丑陋的方式.

javascript angularjs angular-ui angular-ui-router

21
推荐指数
2
解决办法
2万
查看次数

将URL与AngularJS ui-router中的数组列表匹配

使用AngularJS + ui-router,我需要将一个url与单词列表匹配:

但是,使用正则表达式我尝试使用一个或两个单词,它工作

 url: '/{source:(?:John|Paul)}/:id'
Run Code Online (Sandbox Code Playgroud)

但我需要将我的网址与单词列表相匹配.

例如:var sourceList = ['John','Paul','George','Ringo']; url:'/ {source :(?:sourceList)} /:id'

有没有办法比较我的网址与匹配的数组列表?

regex angularjs angular-ui-router

7
推荐指数
1
解决办法
9088
查看次数

AngularJS:url中的可选语言参数

我正在使用angularjs和UI-Router.我想配置指定所选语言的路由.虽然这部分路线应该是可选的.

我有以下状态:

{
    state: 'app',
    config: {
          abstract: true,
          url: '/{lang:(?:de|en)}',
          template: '<ui-view/>'
    }
}

{
    state: 'app.mainview',
    config: {
          url: '/mainview',
          templateUrl: 'app/mainview/mainview.html',
          controller: 'MainviewController',
          controllerAs: 'vm',
          title: 'Main View',
          settings: {
              pos: 1,
              displayName: 'Mainview',
              icon: 'code-array'
          }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在它唯一可以导航到主视图

example.com/en/mainview
Run Code Online (Sandbox Code Playgroud)

虽然我想配置ui-router以使以下所有路由都有效:

example.com/mainview
example.com/en/mainview
example.com/de/mainview
Run Code Online (Sandbox Code Playgroud)

我可以在开头设置一个带有可选语言参数的路由而不使用双斜杠吗?如果不是,您建议使用哪些替代方案?

javascript state angularjs angular-ui-router

6
推荐指数
1
解决办法
1639
查看次数

在角度ui-router URL中添加可选属性

有没有办法在ui-router的url开头有一个可选属性?如果是这样,怎么样?

我想要达到这样的目的:

.state('events',{
    url: '(/city:)?/events/:id'
    ...
})
Run Code Online (Sandbox Code Playgroud)

所以"城市"是可选的.

感谢您的任何输入.

angularjs angular-ui-router

5
推荐指数
2
解决办法
1286
查看次数

Angular UI路由器 - 动态TemplateURL

我正在构建一个带有角度UI路由器的静态HTML网站,用于导航.我基本上有一个带有多个(10+)html模板(页面)的ui-view加载到该视图中.我的所有模板页面都在一个名为"pages"的目录中.

所以我基本上想知道我们是否只能在$ stateProvider中定义一个状态来动态分配多个模板网址,而不是为每个HTML模板页面编写不同的状态(如下所述).

$stateProvider
.state('home', {
    url: '/home',
    templateUrl: 'pages/home.html',
    controller: 'homeController',
    controllerAs: 'home'
})
.state('viz', {
    url: '/viz',
    templateUrl: 'pages/viz.html',
    controller: 'vizController',
    controllerAs: 'viz'
})
.state('about', {
    url: '/about',
    templateUrl: 'pages/about.html',
    controller: 'aboutController',
    controllerAs: 'about'
})....
Run Code Online (Sandbox Code Playgroud)

任何帮助深表感谢.

state angularjs angular-ui-router

3
推荐指数
1
解决办法
4671
查看次数

使用stateProvider angularjs的多个可选参数的Url

由于angular angularjs路由有可选的参数值吗?AngularJS:使用带有可选参数的URL进行路由带有?参数名称的 问号应该使其成为可选项.它没有帮助我.

var app = angular.module('app', ['ui.router','ngRoute']);

app.config(function ($urlRouterProvider, $stateProvider) {
    $urlRouterProvider.otherwise('/a');
    $stateProvider.state('a', {
        url: '/a',
        templateUrl: 'views/a.html'
    }).state('b', {
        url: '/b/:code?/:d?',
        templateUrl : 'views/b.html'
    })
});
Run Code Online (Sandbox Code Playgroud)

这个网址http:// localhost:xx/kk /#/ b/1/2对我来说很好.但是http:// localhost:xx/kk /#/ b(没有任何参数)和http:// localhost:xx/kk /#/ b/1对我不起作用......

你可以看到我正在使用$stateProviderui-router.我不想切换到$urlRouteProvider

state angularjs angular-ui angular-ui-router

3
推荐指数
1
解决办法
3014
查看次数