我最近一直在尝试EmberJS(它的惊人绑定框架的忠实粉丝)我已经编写了一个测试GUI来启动和显示某种通用异步进程的状态(例如,像AJAX请求,但是它可能是不同的东西)
http://jsfiddle.net/whoward/fLCDj/
我发现自己正在与框架作斗争,以便能够从我的点击事件处理程序中访问我想要的子视图,这可能是一个很好的指示,我没有遵循最佳实践。
有什么建议吗? (我正在谈论的代码是在名为“process”的事件处理程序中需要的indicatorView属性)
答案 0 :(得分:4)
从技术角度来看,您可以在创建子项时将子视图设置在父项上:
init: function() {
this._super();
this.get("parentView").set("indicatorView", this);
}
然而,这是一个很大的代码味道,所有这一切都让我觉得它是一个相当复杂的架构。我已经重新设计了一个示例,其中包含一个控制器,它充当模型和视图的中介:http://jsfiddle.net/dgeb/9QbX3/
我很快就这样做了,我确信它可以进一步重构。一般来说,尽量保持逻辑从V - >流出。 C - > M - > C - > V.家长观点或一般的父对象不应该依赖于他们的孩子。