我已经阅读了Ember.js文档示例,带有绑定的嵌套视图让我感到困惑.
我有以下缩写HTML(工作正常):
{{#view App.outerArea}}
{{#view innerArea}}
{{view Ember.TextField valueBinding="parentView.parentView.bound.username"}}
{{/view}}
{{/view}}
…和JavaScript(也正常工作):
App = Ember.Application.create();
App.outerArea = Ember.View.extend({
bound : {
username:'test',
},
innerArea: Ember.View.extend({}),
});
(如果我从HTML中删除innerArea,我可以完全删除’parentView.parentView.’.)
为了清理这个,我尝试过:
...
{{view Ember.TextField valueBinding="bound.username"}}
...
innerArea: Ember.View.extend({
bound: function() {
return App.outerArea.bound;
}
})
并试过:
{{view Ember.TextField valueBinding="getPath(bound.username)"}} // with above bound: function().
还有其他一些组合,但它们根本不起作用.
有没有更优雅的方法从TextField valueBinding引用’parentView.parentView.bound.username’?这有多种方法吗?这类东西最好的设计模式是什么?
谢谢!
最佳答案 首先,在原始示例中,您只需要一个parentView来绑定文本字段的值(请参阅
http://jsfiddle.net/MikeAski/tkDp6/).
其次,在内部视图中定义绑定绑定的方式并不好:您应该尝试:
...
innerArea: Ember.View.extend({
boundBinding: 'parentView.bound'
})