【问题标题】:Show only 50 characters in meteorjs and bootstrap 3在meteorjs和bootstrap 3中只显示50个字符
【发布时间】:2013-11-26 19:46:19
【问题描述】:

我正在为我的应用程序使用 Meteorjs 和 bootstrap 3。我对这两个都很陌生。我正在做的是从数据库中获取一些对象并将它们呈现在 Table 中。但问题是如果对象文本很长,它会增加影响所有模板结构的表格行大小。我可以通过隐藏溢出来做到这一点,但这不是正确的方法。我就是这样做的

{{#each questions}}
    <tr>
        <td>
<a href="#" data-id="{{_id}}" class="edit"> {{question_text}}</a>
         </td>
    </tr>
{{/each}}


Template.questions.questions = function () {
    questions= Meteor.questions.find({topic_id: Session.get("currentTopicId")});
    return questions
}

我只想在 TD 单元格中显示问题的前 50 个字符,后面跟着几个点。我怎么能在meteorjs中做到这一点。我需要在渲染之前拆分文本吗?或告诉我如何在模板中拆分 question_text,或者是否有任何仅显示文本前 50 个字符的内置方法。

我的下一个查询是当我打印或执行 console.log(questions) 时,它向我显示了许多字段,例如集合、查询以及查询、结果、文档每个都包含对象问题的其他一些内容。如何从响应对象中获取这些问题对象。意味着我想在这些问题对象上迭代一个循环。我该怎么做。

简单来说,我想在检索到的对象上迭代循环。

有人可以使用 handlebarsjs.js 发布一个完整的示例

【问题讨论】:

    标签: javascript twitter-bootstrap meteor


    【解决方案1】:

    你可以用助手来做。

     Handlebars.registerHelper('trimString', function(passedString) {
          return new Handlebars.SafeString(passedString.substring(0,50))
       });
    
    {{trimstring question_text}}
    

    【讨论】:

    • 感谢 Ugur Toprakdeviren。今天是我和meteorjs的第二天。让我试试你告诉我的东西。我要先学车把
    • 你能不能多解释一下这个方法。表示我如何将值传递给此辅助函数,然后返回适当值的列表
    • 如果我想像你一样传递 {{trimstring question_text}} 它会抛出错误
    • 这是服务器崩溃错误。现在我已经改变了事情。我正在尝试这样做。 Template.questions.questions = function () { console.log("this functions has been claalled") return Questions.find({topic_id: Session.get("currentTopicId")}).map(function(question) { return question.question_text.substr(0,50); }); }; 在控制台上显示文本。但不向模板返回任何内容。
    • 错误是我的 trimString 函数没有被调用。现在一切正常
    【解决方案2】:

    在 CSS3 的世界中,JS 中的文本已不再是这种情况。我会鼓励你为此使用 CSS3。好处?

    • 悬停后的修剪文本在提示中以完整格式显示,
    • 与元素宽度(本例中为 td 单元格)相关的动态修剪,
    • 更灵活
    .修剪{ 溢出:隐藏; /* 需要使文本溢出工作 */ 文本溢出:省略号; /* 添加'...' */ 宽度:9em; /* 可以像 % 一样灵活固定 */ 空白:nowrap; /* 如果文本不适合元素,则不换行 */ }

    【讨论】:

    • Thanx Jagi,但是你使用了流星辅助方法 bcz,这似乎比隐藏溢出更好和有效
    • 看你说的效率,服务器还是客户端? CSS 用于表示层,修剪文本是一个表示问题。但当然,如果您愿意,您可以修剪文本服务器端 :)。
    • 是的,你是对的 Jagi,谢谢你,你告诉使用的方式是所有数据都将在那里但被隐藏。但在这里,我得到一个只有 50 个字符的子字符串并将其发送到表中。
    猜你喜欢
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    相关资源
    最近更新 更多