1

次のように、Dust.js テンプレートに出力しています。

{#Data}
<li class="link-block clearfix">
    <img class="profile-image" src="{ImagePath}"/>
    <div class="left">
        <a href="{UrlPath}">
            <span class="left">
                <span class="details">{ByLineStart}{ByLineAction}{ByLineEnd}</span>
                <p>{Detail}</p>
            </span>
            <span class="left info">
                <span class="last-reply">{Last}</span>
                <span class="count-small">{ChildCount}</span>
            </span>
        </a>
    </div>
</li>
{/Data}

この場合、XXX の文字数で切り捨てられた「詳細」出力を作成したいと考えています。RSS フィードと同様に、ブロック全体がクリック可能な領域であり、ユーザーはアプリケーションの別の部分に移動します。値をインラインで切り捨てる既存のダストロジックについて知っている人はいますか?

4

1 に答える 1

7

私が知っているものはありません。ただし、次のことを試すことができます

カスタム ヘルパーの作成

var dust = require("dustjs-linkedin");
require("dustjs-helpers");
dust.helpers.Truncate = function(chunk, context, bodies, params) {
    var data   = dust.helpers.tap(params.data, chunk, context),
        length = dust.helpers.tap(params.length, chunk, context);
    return chunk.write(data.substr(0, length));
}

テンプレート

{@Truncate data="{Detail}" length="15"/}

質問で指定した値 XXX が定数値である場合、このようなカスタム フィルターを作成できます。この例では、XXX は 5 と見なされます。

var dust = require("dustjs-linkedin");
dust.filters.t = function(value){
    return value.substr(0, 5);
};

テンプレート

{Detail|t}
于 2013-08-24T02:05:24.630 に答える