Angularjs Ui EJS 中的路由器参数
Angularjs Ui Router Params in EJS
?
这可能是一个奇怪的问题,但我想知道它是否有可能实现。我从 html 侧向参数传递一个值。使用 $stateParams 获取该值。我对此进行了安慰,当然我得到了价值。有没有办法像我在下面所做的那样将该值传递到 ejs 的末尾?请注意,每次我使用此方法时,都会收到 angular 的注入错误。当我删除我试图添加到 templateUrl 字符串的附加 $stateParams.id 时,错误消失了。所以看起来我显然不能把它传进去。有解决办法吗?
Angular部分
.state('home',{
url: '/home/:id',
controller: function($stateParams){
console.log($stateParams.id);
},
templateUrl: '/myRoute/'+$stateParams.id,
});
HTML
<a ui-sref="home({id: 2345})">Click me</a>
假设我的Backend路由是这样设置的
router.get('/myRoute/:id', function(req, res, next) {
console.log(req.params.id); //I would like to get my params here pass down from the view
});
我有一种情况,由于奇怪的原因,我需要 angular 状态作为 ejs 文件而不是常规 html 的视图......我能够拉起ejs 通过路由器显示在屏幕上,但没有运气获得我需要的参数。当我尝试控制它时,它在服务器端出现未定义。
发生错误是因为 $stateParam
依赖项在那里不可用(您没有在任何地方注入期望控制器功能,这仅限于控制器功能)。
访问 $stateParams
的最佳方法是,向 return 添加函数 templateUrl
并设置第一个参数 params
,这样您就可以访问 $stateParams
.state('home',{
url: '/home/:id',
controller: function($stateParams){
console.log($stateParams.id);
},
templateUrl: function(params){
return '/myRoute/'+params.id;
}
});
?
这可能是一个奇怪的问题,但我想知道它是否有可能实现。我从 html 侧向参数传递一个值。使用 $stateParams 获取该值。我对此进行了安慰,当然我得到了价值。有没有办法像我在下面所做的那样将该值传递到 ejs 的末尾?请注意,每次我使用此方法时,都会收到 angular 的注入错误。当我删除我试图添加到 templateUrl 字符串的附加 $stateParams.id 时,错误消失了。所以看起来我显然不能把它传进去。有解决办法吗?
Angular部分
.state('home',{
url: '/home/:id',
controller: function($stateParams){
console.log($stateParams.id);
},
templateUrl: '/myRoute/'+$stateParams.id,
});
HTML
<a ui-sref="home({id: 2345})">Click me</a>
假设我的Backend路由是这样设置的
router.get('/myRoute/:id', function(req, res, next) {
console.log(req.params.id); //I would like to get my params here pass down from the view
});
我有一种情况,由于奇怪的原因,我需要 angular 状态作为 ejs 文件而不是常规 html 的视图......我能够拉起ejs 通过路由器显示在屏幕上,但没有运气获得我需要的参数。当我尝试控制它时,它在服务器端出现未定义。
发生错误是因为 $stateParam
依赖项在那里不可用(您没有在任何地方注入期望控制器功能,这仅限于控制器功能)。
访问 $stateParams
的最佳方法是,向 return 添加函数 templateUrl
并设置第一个参数 params
,这样您就可以访问 $stateParams
.state('home',{
url: '/home/:id',
controller: function($stateParams){
console.log($stateParams.id);
},
templateUrl: function(params){
return '/myRoute/'+params.id;
}
});