添加了Javascript属性,但不可见

时间:2012-09-27 02:44:44

标签: javascript backbone.js coffeescript underscore.js

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

0 个答案:

没有答案