【问题标题】:lodash _.template() wrong outputlodash _.template() 错误输出
【发布时间】:2017-09-24 20:53:02
【问题描述】:

我现在正在学习 lodash。我的目标是使用 lodash 模板将一组用户输出到我的 html 表中。但是,我无法弄清楚为什么我的模板不起作用。

我的用户

var users = [
    { 'user': 'fred', 'active': false, 'age': 40 },
    { 'user': 'pebbles', 'active': false, 'age': 1 },
    { 'user': 'barney', 'active': true, 'age': 36 }
];

我的模板

let template4 = _.template('<ul>' +
    '<% _.forEach(users, function(user) { %>' +
    '<li><%- user.user %></li>' +
    '<% }); %>' +
    '</ul>');

let template4Result = template4({ 'users': users }); // I expect => '<ul><li>fred</li><li>pebbles</li><li>barney</li></ul>'

console.log(template4Result);// => '<ul></ul>'

我不知道应该如何设计我的模板,以便它循环通过我的集合并向其中的每个用户添加一些 html 代码。

【问题讨论】:

  • 你确定你的users 被正确传递了吗?

标签: javascript frontend lodash templating


【解决方案1】:

您的示例代码有效;下面是一个正在运行的 sn-p。

var users = [
    { 'user': 'fred', 'active': false, 'age': 40 },
    { 'user': 'pebbles', 'active': false, 'age': 1 },
    { 'user': 'barney', 'active': true, 'age': 36 }
];

let template4 = _.template('<ul>' +
    '<% _.forEach(users, function(user) { %>' +
    '<li><%- user.user %></li>' +
    '<% }); %>' +
    '</ul>');

let template4Result = template4({ 'users': users });
console.log(template4Result);
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"&gt;&lt;/script&gt;

问题是您传递给模板的users 变量中没有任何项目。所以你没有得到你期望的数据。

如果您要异步检索用户(通过 AJAX 调用),则需要使用回调来仅在 ajax 调用返回后生成模板。下面是一个示例(ajax 不是真正的接口)。

ajax.get(function(users) {
    // this would be the "success" callback
    // we're now able to render the template since we have the data

    let template4Result = template4({ 'users': users });
})

【讨论】:

  • 是的,你是对的。我的变量出了点问题。我使用的是userModel = users; 而不是userModel = _.take(users, 300);。非常感谢您的帮助!
【解决方案2】:

你可以试试这个:

let template4 = _.template('<ul>' +
'<% _.forEach(users, function(value, key) { %>' +
'<li><%- value.user %></li>' +
'<% }); %>' +
'</ul>');

【讨论】:

    猜你喜欢
    • 2018-05-31
    • 1970-01-01
    • 2023-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 2013-02-04
    • 2013-05-02
    相关资源
    最近更新 更多