Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs $state.go使用URL参数进入状态_Angularjs_Angular Ui Router - Fatal编程技术网

Angularjs $state.go使用URL参数进入状态

Angularjs $state.go使用URL参数进入状态,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我有一个带有url参数的状态。 比如: .state('MyState', { url: '/contacts/{personName}', templateUrl: '/app/templates/contacts.html', controller: 'ContactsController', params: { personName: null } }) 现在,我想使用$state.go语法,并能够通过参数将personName参数

我有一个带有url参数的状态。 比如:

.state('MyState', {
    url: '/contacts/{personName}',
    templateUrl: '/app/templates/contacts.html',
    controller: 'ContactsController',
    params: {
        personName: null
    }
})
现在,我想使用
$state.go
语法,并能够通过参数将
personName
参数传递给url

例如,如果我打电话:

$state.go('MyState', {personName: 'john'});
地址栏将显示:


现在地址栏正在显示,我不知道如何强制url包含
personName
。除此之外,它工作正常。

在您的状态定义中,当您定义“params”时,您不必在url中添加param,因此请替换:

url: '/contacts/{personName}',

url: '/contacts',

定义状态时,请使用以下语法

.state('myState', {
        url: '/contacts/:personName',
        templateUrl: '/app/templates/contacts.html',
        controller: 'ContactsController',
          params: {
            personName: {
              array: false
            }
          }
      })
注意:“在url中可以看到人名”

url: '/contacts',

Ref:

只需在状态定义中添加带有默认值的参数。您所在的州仍然可以有Url值。

   $stateProvider.state('MyState', {
        url : '/url',
        templateUrl : "/app/templates/contacts.html",
        controller : 'ContactsController',
        params: {personName: 'defaultName'}
    });
并将参数添加到$state.go()并导航

$state.go('MyState',{personName: "MIT"});
请参阅:


希望对你有帮助

语法可能是
url:'/contacts/:personName'
,它使用
$stateParams
,而
$state.go()
可以指向它to@AlekseySolovey这两种书写方式是等效的。你指的是url部分吗?如果是这样,它就相当于{}语法。无论如何,我试过了,它也不起作用。如果你使用{},那么你需要使用“resolve”。请查看“”中的示例,确切地说,“params”用于指定URL后将显示哪些参数,您不需要在URL中添加参数