0

所以我试图向一个包含对象名称的对象添加一个属性。这将在 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: friday

后来,在模型之外,当我调用@.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
4

0 回答 0