?
这可能是一个奇怪的问题,但我想知道它是否有可能实现。我从 html 端将一个值传递给一个参数。使用 $stateParams 获取该值。我对此进行了安慰,当然我得到了值(value)。有没有办法像我在下面所做的那样将该值传递到 ejs 的末尾?请注意,每次我使用这种方法时,我都会从 angular 中得到一个注入(inject)错误。当我删除我试图添加到 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>
假设我的后端路由是这样设置的
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 状态将 View 作为 ejs 文件而不是常规 html ......我能够通过路由器将 ejs 拉到屏幕上但没有运气获得我需要的参数。当我尝试控制它时,它在服务器端出现未定义。
最佳答案
发生错误是因为 $stateParam
依赖项在那里不可用(您没有在任何地方注入(inject)期望 Controller 功能,这仅限于 Controller 功能)。
访问 $stateParams
的最佳方法是,添加函数以返回 templateUrl
并具有第一个参数 params
这将为您提供访问$stateParams
.state('home',{
url: '/home/:id',
controller: function($stateParams){
console.log($stateParams.id);
},
templateUrl: function(params){
return '/myRoute/'+params.id;
}
});
关于javascript - EJS 中的 Angularjs Ui 路由器参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37292883/