咖啡脚本条件轨道

时间:2016-01-11 18:47:53

标签: javascript ruby-on-rails coffeescript notifications

我有一个小铃铛的网站,当有新的通知时,@ notifications.lenght会通过javascript传递,以显示通知的数量。 我只想要显示通知的数量,如果有一个或多个通知,如果没有通知只显示这样的铃声:

bell

实际上,如果用户没有通知,页面会显示:

Bell0

如果我点击铃声:

bell

女巫很好,但是当我刷新页面时:

bell3

这是我的咖啡:

class Notifications
  constructor: ->
    @notifications = $("[data-behavior='notifications']")
    @setup() if @notifications.length > 0

  setup: ->
    $("[data-behavior='notifications-link']").on "click", @handleClick
    $.ajax(
      url: "/notifications.json"
      dataType: "JSON"
      method: "GET"
      success: @handleSuccess
    )

  handleClick: (e) =>
    $.ajax(
      url: "/notifications/mark_as_read"
      dataType: "JSON"
      method: "POST"
      success: ->
        $("[data-behavior='unread-count']").text("")
    )



  handleSuccess: (data) =>

    items = $.map data, (notification) ->
      "<a class='dropdown-item' href='#{notification.url}'>#{notification.actor} #{notification.action} </a>"

    $("[data-behavior='unread-count']").text(items.length) 
    $("[data-behavior='notification-items']").html(items)





jQuery ->
  new Notifications

如果@ notifications.lenght == 0?

,我怎么能传递一个空字符串?

1 个答案:

答案 0 :(得分:1)

在句柄成功方法中,将设置总项目的代码替换为:

$("[data-behavior='unread-count']").text(parseInt(items.length) || "");

如果items.length0,则会设置一个空字符串。