实现NavigationView时遇到的问题——Sc.View不是可观察的
Trouble implementing NavigationView - Sc.View is not observable
当我尝试使用
将视图推送到我的NavigationView的视图堆栈时MyApp.getPath('mainPage.mainPane.content.nav').push(MyApp.MyView);
它给了我这个:
Uncaught TypeError: Object function (props) {
this.__sc_super__ = ret.prototype;
return this._object_init(props);
} has no method 'get'
显然,SC.View不兼容KVO。那么这是SproutCore框架中的一个bug吗?因为他们在SC.NavigationView源码中做了这个:
view.get("topToolbar"); // with `view` being the view I passed in as shown above
MyApp.MyView
看起来像这样:
MyApp.MyView = SC.View.extend({
childViews: 'search results'.w(),
search: SC.TextFieldView.design({
layout: { centerX: 0, top: 40, width: 400, height: 30 },
hint: "Search"
}),
results: SC.TemplateView.design({
templateName: 'results'
}),
topToolbar: SC.NavigationBarView.design({
childViews: ['title'],
layout: { height: 44 },
title: SC.LabelView.design({
controlSize: SC.LARGE_CONTROL_SIZE,
layout: { width: 100, height: 24, centerX: 0, centerY: 0 },
value: 'Title'
})
})
});
但是我认为SproutCore的开发人员比我更聪明,更有经验,所以这可能是我做的。
为什么我的SC.View
子类没有get()
方法?
看起来你的视图还没有被创建,所以它仍然是一个类而不是一个实例。类没有。get,只有实例。如果你喜欢传递视图(绝对鼓励:)),而不是简单地让childView层次结构处理它们,你也必须创建它们。试试用MyApp.MyView.create()代替。
相关文章:
- knockoutjs可观察数组
- 多次发射多个可观察器的问题
- 未激发路由的控制器属性上的观察者
- 无法在关闭弹出窗口时传递可观察的数据
- firefox插件:退出不工作的应用程序观察器
- 如何收集Knockout可观察性以放入JSON
- 在rxjs中巧妙的蒸汽可观察合并
- 谷歌地图API v3:Initial View is Fine,but Gray Box with No Map if
- 如何检查Backbone.View当前是否在DOM中呈现
- Knockout observable没有观察到其中一个属性
- 将属性设置为未定义时未通知观察者
- 将js对象更改为使用嵌套的可观察数组敲除js视图模型
- KOValidation在错误消息中获取可观察值、$index()、$data等
- 启用具有多个布尔可观察标志的绑定
- 为什么prototypjs观察到回调函数有绑定
- Ember:当子控制器同时观察到父控制器触发请求的相同属性时
- 将View中的项添加到数组中(主干.js)
- 检测 DIV 的高度何时变化,而无需轮询或突变观察者
- 将Backbone.View重新注入DOM,保留事件而不是创建新事件
- 实现NavigationView时遇到的问题——Sc.View不是可观察的