加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

javascript – 在lodash模板中返回函数值

发布时间:2020-12-14 22:56:39 所属栏目:资源 来源:网络整理
导读:我正在使用lodash模板来呈现客户端的html模板.有许多html模板正在重复.所以,我决定在另一个模板中调用重复模板.例如: dummy.html 上面的方法有效,但是当我调用_.template来反复渲染一个按钮时,我想要创建一个全局函数,如下所示: dummy.js var sb = { setBu

我正在使用lodash模板来呈现客户端的html模板.有许多html模板正在重复.所以,我决定在另一个模板中调用重复模板.例如:

dummy.html

<%= _.template(templates['button'])({ title: "click me" }) %>

上面的方法有效,但是当我调用_.template来反复渲染一个按钮时,我想要创建一个全局函数,如下所示:

dummy.js

var sb = {
    setButton: function(data){
        data = data || {};
        return _.template(templates['button'])(data);
    },/* other functions */
}

然后在dummy.html中调用:

<%= sb.setButton({ title: "click me" }) %>

但这不起作用. (它只是不呈现)

我在这做错了什么?

编辑:

我在setButton函数中放置了console.log(this).它没有在chrome控制台中记录任何内容.然后我从lodash模板语法中删除=,然后记录了sb全局变量.

<% sb.setButton({ title: "click me" }) %>

但仍然上面的那个没有渲染按钮.

最佳答案
你编译的模板不知道sb是什么.假设您使用_.template(src)()调用主模板,Lodash会对其进行扼流,并出现类似于ReferenceError的错误:sb未定义.将您的partials哈希作为选项传递,您将获得按钮:

var templates = {
    button: '