【问题标题】:How can i use handlebars data in front end js variable我如何在前端 js 变量中使用车把数据
【发布时间】:2019-01-31 05:07:34
【问题描述】:

我将一个对象数组传递给把手。 我正在像这样在前端检索它

{{this.coment}}

对象包含以下内容:

`{
    _id: "5c527707e28b4fac758cc674",
    sectionId: "2",
    comments: [
      {
        replies: [],
        authorAvatarUrl:
          "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRDW3D0Emu0_gpP-tAEGPjW88zSabvpdICv6BaoNLArqY3xB4NA",
        authorName: "Jesus Zuñiga Vega",
        authorId: "1",
        authorUrl: "",
        comment: "Test",
        id: "72845"
      }
    ]
  },
  {
    _id: "5c5279f2e28b4fac758cc761",
    sectionId: "3",
    comments: [
      {
        replies: [],
        authorAvatarUrl:
          "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRDW3D0Emu0_gpP-tAEGPjW88zSabvpdICv6BaoNLArqY3xB4NA",
        authorName: "Jesus Zuñiga Vega",
        authorId: "1",
        authorUrl: "",
        comment: "Test2",
        id: "37940"
      }
    ]
  },
  {
    _id: "5c527ce2e28b4fac758cc887",
    sectionId: "1",
    comments: [
      {
        replies: [],
        authorAvatarUrl:
          "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRDW3D0Emu0_gpP-tAEGPjW88zSabvpdICv6BaoNLArqY3xB4NA",
        authorName: "Jesus Zuñiga Vega",
        authorId: "1",
        authorUrl: "",
        comment: "Hello",
        id: "77251"
      }
    ]
  }`

注意它缺少数组的“[]”

我想知道是否可以将数据放在 js 变量中以便在前端使用它,如下所示:

var existingComments = [
  {
    _id: "5c527707e28b4fac758cc674",
    sectionId: "2",
    comments: [
      {
        replies: [],
        authorAvatarUrl:
          "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRDW3D0Emu0_gpP-tAEGPjW88zSabvpdICv6BaoNLArqY3xB4NA",
        authorName: "Jesus Zuñiga Vega",
        authorId: "1",
        authorUrl: "",
        comment: "Test",
        id: "72845"
      }
    ]
  },
  {
    _id: "5c5279f2e28b4fac758cc761",
    sectionId: "3",
    comments: [
      {
        replies: [],
        authorAvatarUrl:
          "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRDW3D0Emu0_gpP-tAEGPjW88zSabvpdICv6BaoNLArqY3xB4NA",
        authorName: "Jesus Zuñiga Vega",
        authorId: "1",
        authorUrl: "",
        comment: "Test2",
        id: "37940"
      }
    ]
  },
  {
    _id: "5c527ce2e28b4fac758cc887",
    sectionId: "1",
    comments: [
      {
        replies: [],
        authorAvatarUrl:
          "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRDW3D0Emu0_gpP-tAEGPjW88zSabvpdICv6BaoNLArqY3xB4NA",
        authorName: "Jesus Zuñiga Vega",
        authorId: "1",
        authorUrl: "",
        comment: "Hello",
        id: "77251"
      }
    ]
  }
];

任何帮助将不胜感激,非常感谢!!!

【问题讨论】:

  • 是否要将 this.comment 值赋给前端的变量?
  • 是的,所以我可以用它在 cmets 中显示数组
  • 我回答下面看看

标签: javascript node.js express handlebars.js


【解决方案1】:

是的,您可以通过在这样的路由文件中创建帮助程序来实现此目的

handlebars = handlebars.create({
 helpers: {
  assign:function (varName, varValue, options) {
        if (!options.data.root) {
            options.data.root = {};
        }
        options.data.root[varName] = varValue;
    }
 }
})

然后在前端你可以像这样初始化或赋值给一个变量

{{assign 'existingComments' this.coment}}

然后为了访问就可以使用了

{{@root.existingComments }}

【讨论】:

    【解决方案2】:

    您可以这样做的一种方法是生成一个script 标记。

    <script type="application/javascript">var comment = {{{this.coment}}};</script>
    

    现在,该变量应该可以在您的 Javascript 中使用了。但是,我不喜欢这种方法,因为它使用的是全局变量。

    【讨论】:

    • 它像这样解析变量
    • 然后,使用 var comment = {{{this.comment}}};
    猜你喜欢
    • 2015-05-24
    • 2016-05-02
    • 1970-01-01
    • 2017-03-23
    • 2023-03-25
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多