Ember.js 如何在控制器中获取当前路径和动态段
是否有任何“余烬”方式来获取当前动态片段?它通过参数在路由中可用,如何从ArrayController访问它们 有类似的解决方案吗?当然有window.location.hash,但是余烬方法会更有效 [更新] 基本上这就是我正在做的,它是一个照片库 只有一张模型照片。她的例子如下:Ember.js 如何在控制器中获取当前路径和动态段,ember.js,Ember.js,是否有任何“余烬”方式来获取当前动态片段?它通过参数在路由中可用,如何从ArrayController访问它们 有类似的解决方案吗?当然有window.location.hash,但是余烬方法会更有效 [更新] 基本上这就是我正在做的,它是一个照片库 只有一张模型照片。她的例子如下: { id: 1, name: 'brad-pitt', date_added: 'Sat Apr 05 2014 23:04:35 GMT+0530 (IST)', link: 'example.c
{
id: 1,
name: 'brad-pitt',
date_added: 'Sat Apr 05 2014 23:04:35 GMT+0530 (IST)',
link: 'example.com',
image: 'http://www.somewebsite.com/image.jpg',
rank: 20
}
路线:
/显示所有模型,按等级排序
/brad pitt再次显示所有模型,但筛选名称为“brad pitt”的模型
/brad-pitt?p=1显示所有型号,但过滤器名称=brad-pitt,并突出显示ID为1的型号
控制器:
你到底想做什么?尝试从控制器访问路由是错误的。您已经可以访问其他需要的控制器,您可以调用send在路由中发出操作,并在必要时弹出气泡。我不确定您想要什么?控制器不应该知道路由器的域。为什么不在路线中获取所需的数据并在模型中传递呢?补充了细节@如何获取数据并将其传递给模型?我已经尝试过使用这样一个路由的model属性来实现这一点,返回this.store.find'photo',{name:'someone'};-但这永远不会奏效。抛出一些映射问题。你能帮我解决吗?我想我很难想象你的问题在哪里。
App.Router.map(function(){
this.route('index', {path: '/'});
this.route('photos', {path: ':name'});
})
App.PhotosController = Ember.ArrayController.extend({
needs: ['application'],
itemController: 'photo',
queryParams: ['p'],
p: null,
pictures: function() {
var p = this.get('p');
var pics = this.get('model');
// console.log(this.get('controllers.application.currentRouteName'));
if(p) {
return pics.filterProperty('id', p);
} else {
return pics.filterProperty('name', 'some-one'); // <- THIS NEEDS TO BE DYNAMIC
}
}.property('p', 'model')
});
App.PhotoController = Ember.ObjectController.extend({
link_out: function() {
return 'http://' + this.get('link')
}.property()
});