0

私のバックボーンアプリには、ルートを使用してリスト内の一部の従業員をフィルタリングする選択メニューがあります。これは部門ごとに行われます。

例: localhost/#filter/HRまたは localhost/#filter/Accounting

routes: {
    "filter/:type": "urlFilter"
},

urlFilter: function (type) {     
    this.directory.filterType = type;
    this.directory.trigger("change:filterType");
},

次に、私の見解では:

filterByType: function () {
    if (this.filterType === "all") {
        this.collection.reset(contacts);
        app.navigate("filter/all");
    } else {
        this.collection.reset(contacts, { silent: true });

        var filterType = this.filterType,
            filtered = _.filter(this.collection.models, function (item) {
                return item.get("type").toLowerCase() === filterType;
            });

        this.collection.reset(filtered);

        app.navigate("filter/" + filterType);
    }
},  

ただし、これらの URL のいずれかに直接アクセスすると、選択メニューが同期されません。

選択オプションの値がすべて、HR、および経理に等しい場合、選択をルートと同期させるにはどうすればよいですか?

4

1 に答える 1

0

リストに onchange ハンドラーを作成し、それに応じて URL を更新します (現在のリスト項目のパラメーター値を追加することによって)。URL を変更するときにページをリロードしないようにします (Google で検索)。パラメーターを指定して URL を開いたとき (つまり、ページの読み込み時) に、現在のリスト アイテムが更新されていることを確認します。

于 2012-07-22T12:27:01.847 に答える