Data binding 查看属性返回';未定义';当遵循链接到路线时
我有一个自定义视图,用于在页面上显示当前模型导航的面包屑,以下是它在我的模板(即单一模型模板)中的外观: 下面是呈现数据的面包屑模板:Data binding 查看属性返回';未定义';当遵循链接到路线时,data-binding,ember.js,views,Data Binding,Ember.js,Views,我有一个自定义视图,用于在页面上显示当前模型导航的面包屑,以下是它在我的模板(即单一模型模板)中的外观: 下面是呈现数据的面包屑模板: <ul class="breadcrumb"> {{#if view.penultimate}} <li>{{#linkTo group view.penultimate}}Back{{/linkTo}}</li> {{/if}} <li>{{view.last.name}}</
<ul class="breadcrumb">
{{#if view.penultimate}}
<li>{{#linkTo group view.penultimate}}Back{{/linkTo}}</li>
{{/if}}
<li>{{view.last.name}}</li>
</ul>
由于某些原因,内容未定义,但我不确定原因。有什么想法吗
编辑:
嗯,这里有一个例子。然而,在这个例子中,它是工作的,这使我想到其他的东西可能是问题所在。基本上,每次你在我的应用程序中点击面包屑链接时,路由器都会根据ID进行find
,该ID会发出ajax调用,以查找该路由的当前组和所有子组。可能视图试图在从服务器返回数据之前拉出子组
。。。有没有办法检查/防止这种情况
编辑:
这可能会传达出我想做的更多一点-
编辑:
好的,问题肯定是视图在模型中ajax请求完成之前正在渲染和调用倒数第二个
。话虽如此,在模型的ajax请求完成后,确保其呈现的最佳方法是什么?仔细查看您的用例后,可能会有帮助的是查看新的路由器外观。它还没有广泛的文档记录,应该很快会以博客的形式出现在ember网站上,但它已经被合并到ember最新版本中,因此您可以访问新的实现。尤其是beforeModel
和afterModel
钩子的接缝与您相关
例如,在afterModel
hook中,您可以执行以下操作:
App.PostsIndexRoute = Ember.Route.extend({
afterModel: function(posts, transition) {
if (posts.length === 1) {
this.transitionTo('post.show', posts[0]);
}
}
});
希望能有所帮助。仔细查看您的用例后,可能会有帮助的是查看新的路由器升级版。它还没有广泛的文档记录,应该很快会以博客的形式出现在ember网站上,但它已经被合并到ember最新版本中,因此您可以访问新的实现。尤其是beforeModel
和afterModel
钩子的接缝与您相关
例如,在afterModel
hook中,您可以执行以下操作:
App.PostsIndexRoute = Ember.Route.extend({
afterModel: function(posts, transition) {
if (posts.length === 1) {
this.transitionTo('post.show', posts[0]);
}
}
});
希望有帮助。你能把一个例子放在jsbin里,帮助会更容易…是的,我会拍一个例子。你能把一个例子放在jsbin里,帮助会更容易…是的,我会拍一个例子。有趣的是,原来这是一个带有链接到
的bug,没有等待承诺完成。感谢你给我指点发行说明!有趣的是,原来这是一个带有linkTo
的bug,没有等待承诺完成。感谢你给我指点发行说明!
Uncaught TypeError: Cannot read property 'length' of undefined
App.PostsIndexRoute = Ember.Route.extend({
afterModel: function(posts, transition) {
if (posts.length === 1) {
this.transitionTo('post.show', posts[0]);
}
}
});