3

私は本「Getting Started With Meteor.js Javascript Framework」で演習を行っており、カテゴリと呼ばれるテンプレートが作成されるセクションがあり、次に {#each} ループがコレクションを通過します。これは、印刷の目的で行われます。結果を画面に。これは機能し、コードは以下のとおりです。

<template name ="categories">

    <div class ="title">my stuff</div>

    <div id='categories'>
        {{#each lists}}

        <div id="category">

            {{Category}}

        </div>

        {{/each}}
    </div>

</template>

私の質問はこれです:

以下のコードでは、sort パラメータは何もしていないようです。私はそれが何をしているのか興味があります。理論的には「並べ替え」が想定されていることは理解していますが、パラメーターをいじっても何も変わりません。流星のドキュメントで調べましたが、わかりませんでした。別の順序でソートされるようにコードを変更しようとしています。このようにして、結果を確認し、{sort:がどのように機能するかを実際に理解することができます 。{sort: {Category: 1}}){sort: {Category: -1}}){sort: {Category: 2}})に変更してみましたが、常に同じ結果です。

  Template.categories.lists = function() {
    return lists.find({}, {sort: {Category: 1}});  // Works

  /* return lists.find({}); */                     // Works just the same

  }

コレクションは次のとおりです。

lists.insert({Category:"DVDs", items: [{Name:"Mission Impossible" ,Owner:"me",LentTo:"Alice"}]});

lists.insert({Category:"Tools", items: [{Name:"Linear Compression Wrench",Owner:"me",LentTo: "STEVE"}]});
4

2 に答える 2

3

コードでは、次のように、並べ替えの引数をオブジェクトではなく配列に変更することができます。
sort: [["Category","asc"],["another argument","desc"],[...]]
したがって、コードは次のようになります。

 Template.categories.lists = function() {
    return lists.find({}, {
        sort: [
            ["Category", "asc"],
            ["another argument", "desc"],
            [...]
        ]
    }); 
    // return lists.find({}); // Works just the same
}
于 2013-03-03T07:26:46.020 に答える
0

私の理解によると、それはデフォルトが自然な順序でソートされるためです。詳細については、このリンクを参照してください。

于 2013-03-02T23:29:14.737 に答える