我有一个基本的人对象
PersonApp.Person = DS.Model.extend({
username: 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);
}
});
任何方式我都可以将这个“页面”模型传递给嵌套视图,并且仍然保留基本的“人”控制器上下文(即,我可以围绕这个模型对象数组操作视图)