从模型访问视图
backbone.js / access view from model
如何在backbone.js中从模型访问视图。
我想在model.change()上重新渲染视图
在模型的属性中添加视图是不允许的。
为什么需要在模型更改时从模型访问视图?
在您看来,只需绑定:
this.model.bind('change', this.modelChanged, this) // (event, function, context)
从现在开始,当你的模型改变时,你的视图的modelChanged
方法将被自动调用。
在版本>0.9中,视图中正确的语法应该是这样的。
this.model.on('change', this.modelChanged, this) // (event, function, context)
可以使用以下两种绑定之一:
this.model.bind('change', this.modelChanged)
this.model.bind('refresh', this.modelRefreshed)
查看文档查看差异
将view
属性添加到模型中还有另一个潜在的混乱。一个模型可能由多个视图表示。当这种情况发生时,您必须将view
属性更改为(一个数组)views
。那是哈利在编码。我一开始就是这么做的,当我看到可能涉及多个视图时,我意识到我的失礼。我意识到这只是处理发布者-订阅者模式的另一种方式。
其他人很高兴有模型和视图引用对方作为双向通信的手段。Gravel-Niquet在他的Todos示例应用程序中就是这样做的。Lerner在2011年6月Linux Journal上关于Backbone.js的文章中建议了这一点。也许这是个人喜好的问题,但我支持pawlik。专注于事件;
相关文章:
- 如何访问Web2py'中python代码中的JavaScript变量;s视图
- UI5:如何访问视图中定义的html元素
- 访问url[材质Ui+选项卡]时,Angular Ui路由器未加载视图
- Uncaught ReferenceError:尝试在Android网络视图中访问时未定义函数
- 访问所选剑道树视图节点的子节点
- EmberJS:从集合视图访问项视图
- Cakephp:从视图访问数据库表
- 从主干视图访问 Rails 会话变量
- 从 JavaScript 中的表单视图访问复选框 asp.net
- 从视图访问控制器值的 Grails
- 从视图访问实例变量
- 通过 JavaScript 从视图访问 Post 方法
- 从MVC视图访问DLL中的SaveMethod
- 限制视图访问
- Extjs从一个视图访问另一个视图
- 在如何从子视图访问父变量中使用容器视图
- ExtJs通过视图访问控制器
- 可以't使用MongoDB NodeJS Express从视图访问数据库
- Codeigniter:如何从不同的视图访问css文件
- 从ng视图访问$scope时遇到问题