Javascript 如何在带有主干的eco模板中使用自定义模型功能?
模型 观点 但我有一个错误:Javascript 如何在带有主干的eco模板中使用自定义模型功能?,javascript,jquery,ruby-on-rails,backbone.js,Javascript,Jquery,Ruby On Rails,Backbone.js,模型 观点 但我有一个错误: Uncaught TypeError: Object [object Object] has no method 'hasImageInDetails' 从代码看,您希望FeedItemView处理FeedItem类型的模型,因为您调用了在FeedItem上定义的方法model.isPost。Eco找不到的方法是在Post模型上定义的,因此从逻辑上讲,其中一个方法将失败 你的意思是从FeedItem扩展Post吗?在这种情况下,而不是: Network.Mode
Uncaught TypeError: Object [object Object] has no method 'hasImageInDetails'
从代码看,您希望FeedItemView处理FeedItem类型的模型,因为您调用了在FeedItem上定义的方法model.isPost。Eco找不到的方法是在Post模型上定义的,因此从逻辑上讲,其中一个方法将失败 你的意思是从FeedItem扩展Post吗?在这种情况下,而不是:
Network.Models.Post = Backbone.Model.extend({ ... });
您应该声明模型,以便:
Network.Models.Post = Network.Models.FeedItem.extend({ ... });
还可以包含调用eco.render的方法的代码吗?模板中的@model变量可能不是主干模型实例。请确保我包含了Post view,我在该示例中的任何位置都看不到模板被渲染。它可能在TagsRoot视图中调用吗?呃。。它仍然不在那里。您需要显示调用eco.rendertemplate,{model:…}的代码行。无论如何,问题很可能是您没有正确地将模型传递给模板。哦,很抱歉我找到了它的位置。好的,我在您上面写的时候更改了模型声明,并在Post模型中定义了hasImageInDetails方法,但在Post.jst.eco模板中仍然有相同的错误。您是否也将FeedItems传递到FeedItemView中?您的代码会建议这样做。任何没有定义或继承该方法的模型在传递到FeedItemView时都会导致该异常,因为它没有要调用的方法。我想这就是问题所在。否则,您的模板看起来很好。祝你好运
Uncaught TypeError: Object [object Object] has no method 'hasImageInDetails'
Network.Models.Post = Backbone.Model.extend({ ... });
Network.Models.Post = Network.Models.FeedItem.extend({ ... });