1

私は基本的な人のオブジェクトを持っています

PersonApp.Person = DS.Model.extend({
ユーザー名: DS.attr('string') });

私はすべての人を見つけるためのルートを持っています

PersonApp.Router.map(function(match) {                                                                                                 
    this.resource("person", { path: "/" }, function() {
        this.route("page", { path: "/page/:page_id" });
        this.route("search", { path: "/search/:page_term" });
    });
});

私のルートでは、入ってくるパラメータを見ています

PersonApp.PersonRoute = Ember.Route.extend({
    selectedPage: 1,
    filterBy: '',
    model: function(params) {
        if (get(params, 'page_id') !== undefined) {
            this.selectedPage = get(params, 'page_id');
        } else {
            this.selectedPage = 1;
        }
        if (get(params, 'page_term') !== undefined) {
            this.filterBy = get(params, 'page_term');
        } else {
            this.filterBy = '';
        }
        console.log(this.selectedPage);
        console.log(this.filterBy);
        return PersonApp.Person.find();
    }
});

ネストされたルートには、永続化されていないデータが含まれているため (直接人ではなく) 別のモデルを使用しています (実際には、コントローラーを少しだけ反転させることができます)。

それでも、手動で URL に何かを配置したり、本格的な遷移を行うリンクをクリックしたりすると、上記のモデル フックに入る「パラメータ」は常に空になります。

これが私が使用している基本的なページモデルです(検索サポート付き)

PersonApp.Page = Ember.Object.extend({
    term: ''
});

ユーザーが検索を行うと、transitionTo を呼び出すビューがあります

PersonApp.SearchField = Ember.TextField.extend({
    keyUp: function(e) {
        var model = PersonApp.Page.create({term: this.get('value')});
        this.get('controller.target').transitionTo('person.search', model);
    }
});

この「ページ」モデルをネストされたビューに渡し、基本的な「人」コントローラー コンテキストを保持する方法 (つまり、このモデル オブジェクトの配列のビューを操作できます)

4

0 に答える 0