javascript - EJS 中的 Angularjs Ui 路由器参数

标签 javascript angularjs express angular-ui-router ejs

?

这可能是一个奇怪的问题,但我想知道它是否有可能实现。我从 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/

相关文章:

javascript - 如何在React中创建和删除组件?

javascript - Android_Studio 错误

angularjs - 测试使用另一个使用 $http 的服务的 angular.service

javascript - AngularJS JQuery Ajax 表单提交等效

node.js - Mongoose 连接/模型 : Need to always run on open?

node.js - 如何更有效地保护 mongolab 数据

javascript - 如何解决node.js ENOENT错误

javascript - 发送大型数据集。最佳方法

javascript - 如何从 HTML 表单中收集所有值?