Javascript 未捕获类型错误:无法读取属性';app&x27;未定义的
我有一个综合观点:Javascript 未捕获类型错误:无法读取属性';app&x27;未定义的,javascript,backbone.js,view,marionette,Javascript,Backbone.js,View,Marionette,我有一个综合观点: var resultView = Marionette.CompositeView.extend({ template : ResultPanel, itemView : ResultItemView, initialize : function() { ... }, itemViewOptions : { app : this.options.ap
var resultView = Marionette.CompositeView.extend({
template : ResultPanel,
itemView : ResultItemView,
initialize : function() {
...
},
itemViewOptions : {
app : this.options.app
},
我只想将此视图的应用程序属性分配给itemView的应用程序属性。所以我可以从其他视图使用此视图的应用程序。但我得到了这个错误:uncaughttypeerror:无法读取未定义的属性“app”。我做错了什么?有没有其他方法可以做到这一点?可能性1:
代码执行时尚未设置此.option
可能性#2:
也许“这”不是你所期望的。
分配var=this;
在之前使用“that”而不是“this”
或分配var_options=this.options;在extend()之前,在extend中使用_选项。
选项将从提供给视图构造函数的对象生成。它包括除model
和collection
var rv = new resultView({model: something, app: something})
然后可以像这样访问它
var resultView = Marionette.CompositeView.extend({
itemView : ResultItemView,
initialize : function(options) {
this.app = options.something;
},
itemViewOptions : {
app : this.options.app
},
如果要在其他方法中引用这些选项,则需要将所需的变量附加到视图(this
)本身
您无法从选项参数访问模型
之类的内容,但是它们将自动附加到视图中是否要通过构造函数传递应用程序变量?当以这种方式声明时,它引用{}对象