
模型挂钩上的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。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)