作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我正在构建一个博客,其中主页呈现一个博客文章列表。我的问题是如何将模型传递给每个子帖 subview ?
我有一个遍历集合的 index.hbs
{{#forEach models}}
{{view "post_view" model=value model_name="story"}}
{{/forEach}}
我有一个 post_view.js
var BaseView = require('./base');
module.exports = BaseView.extend({
className: 'post_view',
initialize: function() {
console.log(this.model); //undefined
console.log(this.options.model); //undefined on client, logs model attributes on server
}
});
module.exports.id = 'post_view';
但模型似乎没有设置在 post_view.js 中。如果我在 {{forEach}}
循环中执行 {{json value}}
,我可以看到打印的 JSONified 输出。我需要做什么来传递模型,是否需要在 View 中手动构建它?谢谢!
最佳答案
我没有发表评论的名誉,但这不是答案。
当 subview 被初始化时,通常 model
还不存在。它肯定会在 postRender()
出现,并且应该在 getTemplateData()
出现。我不记得导致这种竞争情况的 {{view}}
插件的确切问题,但我以前确实见过这种情况。虫洞就在这附近:https://github.com/rendrjs/rendr/blob/master/shared/base/view.js#L438并且是在服务器上工作但并不总是在客户端上工作的东西。
关于javascript - Rendr 如何在 RendrJS 同构框架中将模型传递给 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33463139/
我是一名优秀的程序员,十分优秀!