EJS中的Angularjs-Ui路由器参数

Angularjs Ui Router Params in EJS

本文关键字:参数 路由器 Angularjs-Ui 中的 EJS      更新时间:2023-09-26

这可能是一个奇怪的问题,但我想知道是否有可能实现。我正在从html端将一个值传递给一个param。使用$stateParams获取该值。我安慰自己,当然我得到了价值。有没有一种方法可以像下面那样将该值传递到ej的末尾?注意,每次我使用这种方法时,我都会从角度得到一个注入误差。当我删除试图添加到templateUrl字符串中的额外$stateParams.id时,错误就会消失。看来我显然不能把它传进去。周围有工作吗?

有角度的部分

.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
});

我有一种情况,由于奇怪的原因,我需要这种角度状态将视图作为ejs文件而不是常规html。。。我能够通过路由器将ej拉到屏幕上,但没能得到我需要的params。当我尝试控制台时,它在服务器端出现未定义的情况。

由于$stateParam依赖项在那里不可用而发生错误(除了控制器函数之外,您还没有在任何地方注入控制器函数,它仅限于控制器函数)。

访问$stateParams的最佳方法是添加函数以返回templateUrl&具有第一个参数params,它将使您可以访问$stateParams

.state('home',{
    url: '/home/:id',
    controller: function($stateParams){
       console.log($stateParams.id);
    },
    templateUrl: function(params){
       return '/myRoute/'+params.id;
    }
});