你能以某种方式收到$ stateParams而你的html中没有<ui-view>
- 标签吗?
基本上,我希望这段代码能够运作:
.config([
'$locationProvider',
'$stateProvider',
function($locationProvider, $stateProvider) {
$locationProvider.html5Mode(true);
$stateProvider
.state('schedules_show', {
name: 'edit_schedule',
url: '/schedules/:id/edit'
});
}])
所以我可以从通过$ stateParams调用的任何其他控制器中获取:id。
更多澄清:我不想使用$ stateParams来生成链接或移动我的应用程序,因为我的应用程序是RoR和Angular.js的混合体。我用公共链接更改服务器端的视图。我只想使用angular-ui-router从URL中获取一些值,以便在我的应用程序的Angular.js部分中使用(在本例中为:id)。因为我不想通过Angular导航并且不想使用它的状态依赖控制器或视图,这也是我不想在我的HTML中使用<ui-view>
- 标记的原因。 / p>
问题已解决:我认为我通过angular-ui-router
的做法是错误的。我现在有一个解决方案,我只是将HTML中的参数从ng-init传递给控制器,但它没有回答我的问题,所以我认为应该关闭它。
答案 0 :(得分:0)
如果我理解你,你需要国家参数。 qnswer是:是的,你可以。第一种方法是使用url params:/url/suburl/:param1/:param2/:paramN
。第二种方式(如果你不想在URL中看到你的参数)在你的州使用params
选项。然后用里面的这个参数调用你的状态。示例:
.state('schedules_show', {
name: 'state1',
url: '/state',
params: {
param1: null,
param2: null
}
});
这里,状态配置null
是指不分配初始值;并用
ui-sref="state1({ param1: 'test', param2: 10 })"
然后在注入的$stateParams
对象中,您可以获得这些参数的值
另一种可能的解决方案是在您所在的州使用resolve
为您指定的状态的控制器提供特定的参数
有关resolve
的更多信息有意义吗?