首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用手棒数据填充隐藏的div?

如何使用手棒数据填充隐藏的div?
EN

Stack Overflow用户
提问于 2014-12-27 21:41:10
回答 1查看 1.7K关注 0票数 0

工具栏数据在静态页面上显示得很好,但问题是我也有一个模型,而且数据在模型上没有被正确地填充。

我使用avgrund模态(您可以在这里查看Codepen )

main.js -车把代码

代码语言:javascript
复制
var projectData = [
    {
        id: "0",
        name: "Jack",
    },
    {
        id: "1",
        name: "Sally",
    },
];
var theTemplateScript = $("#project-template").html();
var theTemplate = Handlebars.compile(theTemplateScript);
$("#content").append(theTemplate(projectData));

index.html

代码语言:javascript
复制
<div id="content">
<script id="project-template" type="x-handlebars-template">

    <div class="pile">
      {{#each this}}

        <a onclick="avgrund.activate( 'stack' );">

          <div class="box box{{id}}">
              <span class="project_name project_name{{id}}">{{name}}</span>
          </div>

        </a>



          <aside class="avgrund-popup">
            <h2>{{name}}</h2>
            <p>
           You can hit ESC or click outside to close the modal. Give it a go to see the reverse transition.
            </p>
          </aside>
      {{/each}}
    </div>
  </script>
</div>

问题

div框将显示得很好,但是每当我单击这些框以使模型出现时,该模型只显示projectData中的最后一个元素。

当我使用引导模式时,我已经能够让数据显示得很好,但是由于某些原因,没有使用avgrund模式。

暗示一个可能的解决方案?

我认为这个StackOverflow q:如何填充隐藏表单字段的答案暗示了一些可能有用的东西,例如取出数据并将其重新插入avgrund模式代码中,如下所示。

代码语言:javascript
复制
var data = {
"Value": [
    {"Id": "6b7", "Notes": "testing", "CreatedBy": "User1"},
    {"Id": "6b7", "Notes": "Testing 1", "CreatedBy": "User2"}
]};
data.Id = data.Value[0].Id;
var tmpl = Handlebars.compile($('#template').html());
var html = tmpl(data);

但我不完全理解答案,也没能让它起作用。有人能指出一些可能有帮助的方法或指导原则吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-27 22:29:05

这里有一个小提琴,它展示了一个有用的例子:http://jsfiddle.net/9f9w1trs/

正如罗默-1888年所指出的,你在那里有一个额外的关闭</div>。您没有包含实际编译和填充模板的代码。

基本思想是定义一个模板--就像你做的那样。

代码语言:javascript
复制
<script id="project-template" type="x-handlebars-template"> ....</script>

然后“编译”模板(出于性能考虑,或者如果您只想使用轻量级的运行时库而不是完整的库),可以预编译它们。

代码语言:javascript
复制
var source = $("#project-template").html();
var template = Handlebars.compile(source);

然后你可以用数据填充你的模板。

代码语言:javascript
复制
var populatedHtml = template(projectData);

最后,将填充的HTML添加到DOM中。

代码语言:javascript
复制
$('#myContent').append(populatedHtml);

将其添加到隐藏的div中与否并不真正重要-它只是替换{}之间的内容;)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27671711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档