Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获类型错误:无法读取属性';app&x27;未定义的_Javascript_Backbone.js_View_Marionette - Fatal编程技术网

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
)本身


您无法从选项参数访问
模型
之类的内容,但是它们将自动附加到视图中

是否要通过构造函数传递应用程序变量?当以这种方式声明时,它引用{}对象