Gua*_*ard 2 javascript ember.js
我有一些像/ ads /:ad_id的路线,我可以从我的控制器那里做
this.transitionToRoute('ads.ad', adObj)
Run Code Online (Sandbox Code Playgroud)
我怎么能做类似的事情,但这次传递ID而不是加载的对象?
我当然知道我可以先用ID加载一个obj,但是Ember的力量正在为我们丢失样板.
更新:因此,默认情况下,Ember将模型序列化为URL params
mode_instance -> { model_name_id: model_instance.id }
Run Code Online (Sandbox Code Playgroud)
我的琐碎尝试正在做
this.transitionToRoute('ads.ad', { id: adObjId })
Run Code Online (Sandbox Code Playgroud)
但是当传递模型对象时,Ember不会重新获取它.
所以,问题是:我有一条依赖于广告ID的路线(单一广告视图).我有这个ID作为号码.我想过渡到这条路线,就像我只是输入网址一样/ads/ID
小智 8
这可以通过将URL传递给transitionTo来实现.例如,
this.transitionToRoute('/ads/' + adObjId)
Run Code Online (Sandbox Code Playgroud)
将使用URL中的params调用model()方法.
小智 7
这是一个用例:
从列表视图转换到详细视图.在列表视图中,记录没有任何关系,但详细视图应该侧载关系数据.因此,列表视图和详细视图之间的模型不是1:1.应该有一种简单地使用id转换的方法.
CP
| 归档时间: |
|
| 查看次数: |
7356 次 |
| 最近记录: |