0

我正在使用以下代码在 Shopify Dashing 中制作自定义小部件:

<div class="main">
  <div id="bar">
     <a href="Info" data-event-click="toggleDetails">Info</a>
     </div>
  <div id="summary" data-bind="summary"></div>
  <div id="info" data-bind="info"></div>

  <h2 data-bind="more"></h3>
</div>

单击“信息”标签时,它应该切换小部件中显示的视图。这在第一次单击时工作正常,并且按预期调用了函数 toggleDetails。当第二次或第三次单击它但没有任何反应时,该函数永远不会被调用。

为什么是这样?我真的不明白。

这是我的咖啡课:

  1 class Dashing.Toggle extends Dashing.Widget
  2 
  3   ready: ->
  4     # This is fired when the widget is done being rendered
  5     #@showDetails = false
  6     @showSummary = true
  7     @initiateView()
  8 
  9   onData: (data) ->
 10     # Handle incoming data
 11     # You can access the html node of this widget with `@node`
 12     # Example: $(@node).fadeOut().fadeIn() will make the node flash each time data comes in.
 13 
 14 
 15   @accessor 'toggleDetails', ->
 16     @switchView()
 17     console.log "toggling 1"
 18 
 19   initiateView: ->
 20     @summaryView().show()
 21     @infoView().hide()
 22 
 23   switchView: ->
 24     console.log "Switching"
 25     if @showSummary
 26       @summaryView().fadeOut @animationLength()
 27       @infoView().fadeIn @animationLength()
 28       @showSummary = false
 29     else
 30       @infoView().fadeOut @animationLength()
 31       @summaryView().fadeIn @animationLength()
 32       @showSummary = true
 33 
 34   summaryView: ->
 35     console.log "getting summary view"
 36     $(@node).find("#summary")
 37 
 38   infoView: ->
 39     console.log "getting info view"
 40     $(@node).find("#info")
 41 
 42   animationLength: ->
 43     1000
4

1 回答 1

0

好的,我自己解决了它:PI 仍然不知道为什么,但是将调用 @accessor 方法 toggleDetails 的表单更改为 switchView 效果很好。有谁知道为什么?

于 2014-09-19T08:30:36.750 回答