AngularJS中的一些误解
在我的控制器中,我有以下定义:AngularJS中的一些误解,angularjs,Angularjs,在我的控制器中,我有以下定义: var self = this; this.game= gameArchive; 我认为这一行: <input type="checkbox" checklist-model="builderStep2.game.ModelItems" checklist-value="model.Id"> {{model.Name}} 当用户按下复选按钮时,将创建数组,并将值添加到game.ModelItems,但当我尝试通过此行以编程方式填充数
var self = this;
this.game= gameArchive;
我认为这一行:
<input type="checkbox"
checklist-model="builderStep2.game.ModelItems"
checklist-value="model.Id"> {{model.Name}}
当用户按下复选按钮时,将创建数组,并将值添加到game.ModelItems
,但当我尝试通过此行以编程方式填充数组时:
self.game.ModelItems.push(someID);
似乎数组未创建,我得到以下错误:
TypeError:无法读取null的属性“push”
知道为什么会这样吗?push()
属于Array.prototype
。如果game.ModelItems
不是数组,push()
将不起作用
我不确定gameArchive
正在做什么,但您可以在控制器this.game.ModelItems=[]中尝试我有一种感觉,push()
会起作用。push()
属于数组。原型
。如果game.ModelItems
不是数组,push()
将不起作用
我不确定gameArchive
正在做什么,但您可以在控制器this.game.ModelItems=[]中尝试我有一种感觉,push()
会起作用。push()
属于数组。原型
。如果game.ModelItems
不是数组,push()
将不起作用
我不确定gameArchive
正在做什么,但您可以在控制器this.game.ModelItems=[]中尝试我有一种感觉,push()
会起作用。push()
属于数组。原型
。如果game.ModelItems
不是数组,push()
将不起作用
我不确定gameArchive
正在做什么,但您可以在控制器this.game.ModelItems=[]中尝试我觉得push()
会起作用。还有可能ModelItems甚至没有声明。。但是,是的,我同意您的解决方案会有所帮助。简单地声明“this.game.ModelItems;”不会起任何作用。它需要定义为一个带有“=[];”的数组或等效的替代项。this.game.ModelItems已声明但未声明为数组。但当我使用此方法时,它正在工作?是的,您需要将其初始化为空数组,如ModelItems=new array()或ModelItems=[]。您的ModelItems只是null,而您的javascript正在抛出一个错误,因为它无法访问null值的属性。在您的情况下,“推”是属性。如果您将ModelItems从null切换到数组,那么它将工作。也可能ModelItems甚至没有声明。。但是,是的,我同意您的解决方案会有所帮助。简单地声明“this.game.ModelItems;”不会起任何作用。它需要定义为一个带有“=[];”的数组或等效的替代项。this.game.ModelItems已声明但未声明为数组。但当我使用此方法时,它正在工作?是的,您需要将其初始化为空数组,如ModelItems=new array()或ModelItems=[]。您的ModelItems只是null,而您的javascript正在抛出一个错误,因为它无法访问null值的属性。在您的情况下,“推”是属性。如果您将ModelItems从null切换到数组,那么它将工作。也可能ModelItems甚至没有声明。。但是,是的,我同意您的解决方案会有所帮助。简单地声明“this.game.ModelItems;”不会起任何作用。它需要定义为一个带有“=[];”的数组或等效的替代项。this.game.ModelItems已声明但未声明为数组。但当我使用此方法时,它正在工作?是的,您需要将其初始化为空数组,如ModelItems=new array()或ModelItems=[]。您的ModelItems只是null,而您的javascript正在抛出一个错误,因为它无法访问null值的属性。在您的情况下,“推”是属性。如果您将ModelItems从null切换到数组,那么它将工作。也可能ModelItems甚至没有声明。。但是,是的,我同意您的解决方案会有所帮助。简单地声明“this.game.ModelItems;”不会起任何作用。它需要定义为一个带有“=[];”的数组或等效的替代项。this.game.ModelItems已声明但未声明为数组。但当我使用此方法时,它正在工作?是的,您需要将其初始化为空数组,如ModelItems=new array()或ModelItems=[]。您的ModelItems只是null,而您的javascript正在抛出一个错误,因为它无法访问null值的属性。在您的情况下,“推”是属性。如果您将ModelItems从null切换到数组,那么它将工作。
self.game.ModelItems.push(someID);