为什么不调用我的ember.js路由模型?

为什么不调用我的ember.js路由模型?,第1张

为什么不调用我的ember.js路由模型

模型挂钩上的Ember文档:

“您可以实现一个将URL转换为该路由模型的钩子。”

这解释了为什么在页面刷新时仅调用模型挂钩。但这使很多人感到困惑:-)。因此,在这种情况下,这不是正确的选择。我认为您应该在这种情况下使用setupController挂钩。试试这个:

App.PlaceRoute = Ember.Route.extend({    setupController: function (controller, model) {        console.log('place route called');        var place;        $.getJSON('https://api.foursquare.com/v2/venues/' + model.get('place_id') + '?client_id=nnn&client_secret=nnn', function (data) {     var v = data.response.venue;     place = App.Place.create({ id: v.id, name: v.name, lat: v.location.lat, lng: v.location.lng }); });        controller.set("model", place);    }});

我额外支付2美分: 通过URL /直接浏览器导航输入应用程序后,为什么刚刚执行了模型挂钩?

Ember假设,如果使用,则不必调用模型挂钩

{{linkTo}}
。在场所模板中使用
{{#linkTo 'place' place}}{{place.name}} {{/linkTo}}
。您正在将地点对象传递到路线。 Ember假定这是执行模型挂钩时将得到的同一对象。
因此,从Embers View中无需调用模型挂钩。因此,即使您在使用时也要执行检索逻辑
linkTo
,请使用
setupController hook



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5016381.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-15

发表评论

登录后才能评论

评论列表(0条)

    保存