我想我忘记了这个术语,所以欢迎标题编辑。我想做的是为我的$scope
对象分配多个函数,如下所示:
$scope.
widgetDropped = (event, ui) ->
(console.log "widget dropped")
dragCallback = (event, ui) -> # fails
console.log("started drag") # fails
所以前3行编译正常,但添加最后2行会导致编译失败。线条延续了一点,没有运气。是否有可能在coffeescript中进行这种多行对象分配?
答案 0 :(得分:1)
我认为你正在寻找这样的东西:
$scope =
widgetDropped : (event, ui) ->
console.log "widget dropped"
dragCallback : (event, ui) ->
console.log "started drag"
之后你可以调用你的函数:
$scope.widgetDropped() # logs "widget dropped"
$scope.dragCallback() # logs "started drag"
如果您愿意,可以添加大括号以清晰起见:
$scope = {
widgetDropped : (event, ui) ->
console.log "widget dropped"
dragCallback : (event, ui) ->
console.log "started drag"
}
答案 1 :(得分:0)
如果您正在尝试扩展(即一次设置多个属性)$scope
,请执行以下操作:
$scope.widgetDropped = (event, ui) -> console.log "widget dropped"
$scope.dragCallback = (event, ui) -> console.log("started drag")
然后你运气不好,CoffeeScript没有什么原生的。不过,各种库都提供了这方面的功能,Underscore / Lodash例如:
_($scope).extend(
widgetDropped: (event, ui) -> console.log "widget dropped"
dragCallback: (event, ui) -> console.log("started drag")
)
destructured assignment有各种形式的另一种形式:
o = { where: 'is', pancakes: 'house?' }
{ pancakes } = o
# pancakes is now 'house?'
但没有原生合并技术。