我有一个模型监听事件update:TotalCost
,当属于集合C的任何模型M改变时,该事件从(不相关的)集合C触发。
这个事件是在initialize方法中编写的,如下所示。在接收到该事件时,我得到以下错误:
类型错误:此.set不是函数
此.set({“总销售额”:值});
CostModel = Backbone.Model.extend({
defaults: {
totalSale: 0,
totalTax: 0
},
initialize: function(attrs, options) {
if(options) {
if(options.vent) {
this.vent = options.vent;
}
}
this.vent.on("update:TotalCost", function(value) {
this.set({ "totalSale": value}); **//ERROR HERE**
});
}
});
7条答案
按热度按时间pieyvz9o1#
您很可能忘记在模型前添加关键字
new
,例如:insrf1ej2#
你试过用结束语吗?
djp7away3#
也许您希望
this
引用当前CostModel
示例,为此,您需要将this
传递给this.vent.on
调用,以便在模型上下文中执行事件回调:du7egjpx4#
这可能是由于**“设置”适用于模型 *,,而不适用于对象。因此,您可以先将对象转换为模型,然后尝试..
在实施例中:
xsuvu9jc5#
出现此错误的另一个原因可能是您尝试在不使用“new”关键字的情况下创建新模型
monwx1rj6#
当我在Parse中使用它的时候,我得到了这个神秘的错误。我有:
......而我本该:
删除了额外的(),它现在工作正常。
5fjcxozz7#
另一个原因: