如何将数据从EJS模板传递到AngularJS控制器

时间:2014-10-19 05:25:25

标签: javascript node.js angularjs express ejs

我通过NodeJS从ExpressJS获得用户数据如下:

app.js

app.get('/user', function(req, res) {
    res.render('users', { title: 'Foo', user: req.user });
});

users.ejs

<%= user %>

我需要上面user的{​​{1}}数据到angularjs控制器,所以我可以在其他命名视图中显示它。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:6)

有些人说 ng-init ,但这对我来说感觉又脏又错。你可以把它内联并弄乱窗口和 rootscope ,但它可能会变得混乱。或者您可以内联其他模块,如:

<script>
   angular.module('PreloadedData', [])
     .constant('User', <%- user %>);
</script>

然后它将像任何其他依赖项一样可用。

答案 1 :(得分:0)

try this on template...

<% if(title){ %>
 <script>
window.Mytitle = <%- JSON.stringify(title) %>;
</sript>
<% } %>

try on your controller..
console.log(window.Mytitle);

=============================================== =

try this on template...

<% if(user){ %>
<script>
  window.MyUser = {};
  window.MyUser = <%- JSON.stringify(user) %>;
</sript>
<% } %>

try on your controller..
console.log(window.MyUser);

抱歉,如果我错了..