所以我试图将一个属性添加到一个包含对象名称的对象。这将在html名称属性等中使用。
setClientSideOpeningHours: =>
newOpeningHours = {}
existingOpeningHours = _.extend {}, @.get("opening_hours")
_.each _.keys(existingOpeningHours), (item) ->
newOpeningHours[item] = existingOpeningHours[item]
newOpeningHours[item]["day"] = item
console.log "openingHours.friday", newOpeningHours.friday,
"openingHours.friday.day", newOpeningHours.friday.day
@.set "clientside_opening_hours", newOpeningHours
在Chrome中,这会打印到控制台:
openingHours.friday openingHours.friday:Object {is_closed:“true”, proto :Object} openingHours.friday.day:周五
稍后,在模型之外,当我调用@ .model.toJSON()或@ .model.attributes时,day属性完全不存在。这是怎么回事?
编辑:使用$ .extend(true,...)
setClientSideOpeningHours: =>
newOpeningHours = {}
existingOpeningHours = $.extend true, {}, @.get("opening_hours")
_.each .keys(existingOpeningHourshours), (item) =>
newOpeningHours[item] = $.extend true, {}, existingOpeningHours[item]
newOpeningHours[item].day = item
@.set "clientside_opening_hours", newOpeningHours