Rails中的Coffeescript绑定

时间:2014-06-30 06:12:44

标签: ruby-on-rails coffeescript erb

我目前正在使用下面的示例应用在我的Rails 4应用程序中实现webrtc + pubnub大厅: https://github.com/pubnub/webrtc-chat

除了html和coffeescript之间的绑定外,我已经成功实现了所有部分。

在我的chatroom.html.erb中,我有以下内容:

         <div class="box">
            <h3>Try Now</h3>
            <input type="text" id="userid" placeholder="Username" />
            <br />
            <a href="#" class="btn btn-large btn-inverse" id="login">Log In</a>
            <br />
            <p style="padding-top: 12px;">- or -</p>
            <span id="signinButton"></span>
         </div>


    <script type="text/html" id="user-item-template">
      <li class="user" data-user="<%= id %>">
      <span class="name"><%= name %></span>
      <a href="#" class="btn btn-success" data-user="<%= id %>">Call</a>
      </li>
    </script>

在我的coffeescript中,我有以下内容:

  document.querySelector('#login').addEventListener 'click', (event) ->
    uuid = document.querySelector('#userid').value
    login "guest-#{uuid}"

  login = (name) ->
    uuid = name

 userTemplate = _.template $("#user-item-template").text()
 userList = $("#user-list")
  $(document).on 'pubnub:ready', (event) ->
    pubnub.subscribe
      channel: 'phonebook'
      callback: (message) ->
        # Do nothing
      presence: (data) ->
        # {
        # action: "join"/"leave"
        # timestamp: 12345
        # uuid: "Dan"
        # occupancy: 2
        # }
        if data.action is "join" and data.uuid isnt uuid
          newItem = userTemplate
            name: data.uuid.split('-')[1]
            id: data.uuid
          userList.append newItem
        else if data.action is "leave" and data.uuid isnt uuid
          item = userList.find "li[data-user=\"#{data.uuid}\"]"
          item.remove()

我收到以下错误:

内部服务器错误 未定义的局部变量或方法`id'用于#&lt;#:0x00000101ff1d40&gt;

我假设我因erb标签而出现并发症?它们已在js app示例中定义。 rails erb标签和使用javascript应用程序找到的标签之间有区别吗?我注意到该示例仅使用普通的html。也许像Angular.js这样的选项可能有所帮助,但我宁愿不深入研究它。

编辑:添加了用户ID /名称

的输入表单

0 个答案:

没有答案