Ember传输到URL不起作用
Ember Transion-to URL not working
我有一个成员操作,它使用jquery post提交表单,比如
submit : function(){ //submitting new story
this.set('onsubmit' , true);
var self = this;
$.post( "/api/post", { some post data })
.done(function(data) {
self.transitionTo('post' + data);
});
}
网址如下,域名example.com.Post位于example.com/api/Post。发布后,用户必须重定向到example.com/Post/3432232(发布数据返回的一些值)。
然而,在将此转换发布到"example.com/api/post/5000203"之后,而不是example.com/post/23423234。
它不存在,给出404。如何使用ember中的函数转换让用户返回example.com/post/23243234?
编辑-路线如下
App.Router.map(function() {
this.resource('index', {path : '/'} , function() {
this.resource('p', function(){
this.resource('post', { path: ':post_id' });
});
});
});
感谢
在Ember路由系统中,transitionTo将路由的名称和路由的模型作为参数(相同的模型,当调用Ember.route.model钩子时,该路由返回)。Ember的词汇表中有两种类型的路由器转换:URL转换(发生在客户端处理新URL时,例如,当您从头开始打开页面时)和"命名转换"(发生在调用this.tranisionTo时)。
Route试图在处理"URL转换"时基于params列表(例如:post_id)加载模型。另一方面,当它处理"命名转换"时,它不调用模型钩子,而是使用已经提供的模型(this.tranisition('post', PostModel
)`)。文档。
因此,如果您手头有post_id
,只需调用this.store.find('post',postId)即可获得PostModel,并将请求的模型提供给PostRoute:this.transitionTo('post', this.store.find('post', data)
。
附言:请考虑阅读这个问题和答案,以获得真正嵌套的路由结构:嵌套URL:路由转换问题。
p.p.S.我查看了Ember的文档,发现了transitionTo
方法的新签名(至少对我来说):http://emberjs.com/api/classes/Ember.Route.html#method_transitionTo.根据这个文档,您可以重写您的示例以使其工作:this.tranisitionTo('post', data)
,其中data
是post_id。
- window.open(url).print()在Safari中不起作用
- Url中的JavaScript变量不起作用
- 导航到新url时,Javascript在Safari中不起作用
- Shoutcast流url在html5音频标签中不起作用
- 想制作一个基于URL的音频播放器,但Javascript不起作用
- 调用 http url 有效,但 Https 不起作用
- UI 路由器参数 URL 不起作用,只是重定向到 /
- 对 URL 的 JSON-P 请求不起作用
- VideoJS:mp4在动态更改视频url时不起作用
- 为什么这个使用谷歌URL的Javascript文本到语音不起作用
- 角度路由;在浏览器中直接访问URL时不起作用,但在单击时起作用
- Ajax和jQuery对$Ajax url的调用不起作用
- 用javascript交换url后刷新类似facebook的按钮不起作用
- 我的Javascript没有'当我把一个脚本元素放在头上从URL加载它时,它不起作用
- 获取链接帖子使用脚本“data:post.url”博主不起作用
- JQuery 验证来自另一个域的 url 不起作用
- jQuery 拖放更改我的 URL - 返回 false 不起作用
- addClass 不起作用,尝试根据 URL 添加类
- 将字符串变量作为事件源 url 传递给 Fullcalendar 不起作用
- 画布到数据 URL 不起作用