Javascript 在没有ui导航的情况下获取$stateParams
您是否可以在html中不使用Javascript 在没有ui导航的情况下获取$stateParams,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,您是否可以在html中不使用-标记的情况下接收$stateParams 基本上,我希望这段代码能够工作: .config([ '$locationProvider', '$stateProvider', function($locationProvider, $stateProvider) { $locationProvider.html5Mode(true); $stateProvider .state('schedules_show', { name: 'ed
-标记的情况下接收$stateParams
基本上,我希望这段代码能够工作:
.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路由器的方法是错误的。我现在有了一个解决方案,我只是通过ng init将参数从HTML传递到控制器,但它没有回答我的问题,所以我认为应该关闭此选项。如果我理解正确,您需要状态参数。答案是:是的,你可以。第一种方法是使用url参数:/url/suburl/:param1/:param2/:paramN
。第二种方法(如果您不想在url中看到您的参数)在您的状态中使用params
选项。然后用这个参数调用你的状态。例如:
.state('schedules\u show'{
名称:“state1”,
url:“/state”,
参数:{
param1:null,
param2:null
}
});代码>
这里,在状态配置中,null
用于不分配初始值;把这种状态称为
ui sref=“state1({param1:'test',param2:10})”
然后在注入的$stateparms
对象中,您可以获得这些参数的值
另一种可能的解决方案是在您的状态中使用resolve
,为分配了此状态的控制器提供特定的参数
更多关于
有意义吗?没有标签是什么意思?对不起,我在那里写的,所以解释为HTMLS。那么为什么你要使用Angular?我只需要在单页上使用一部分。有意义,但不幸的是,这不是我问题的答案。为什么?您需要一个不带ui视图的解决方案
。我错了吗?如果不是,这是可能的解决方案。在本例中,您不需要包含ui视图
。我在帖子中添加了一个说明。您还可以在上面看到,我已经在代码中的状态url中嵌入了参数。