Sinatra:渲染片段(部分)

时间:2012-09-06 03:35:48

标签: ruby sinatra

我正在关注一本正在与Sinatra建立推特克隆的O'Reilly书籍。由于Sinatra没有'部分'(就像Rails那样),作者创建了自己的“片段”,就像部分一样。我知道这在Sinatra中很常见。

无论如何,在他的一个片段(见下面的第一个片段)中,他调用另一个片段text_limiter_js(在下面复制)。 Text_limiter_js基本上是一个javascript函数。

如果你看一下text_limiter_js中的javascript函数,你会发现它需要两个参数。我不明白这些参数来自何处,因为当text_limiter_js在另一个片段内呈现​​时它们没有被传入。

我不确定我是否已经为某人提供了足够的信息/代码来帮助我理解这一点,但如果可以的话,请解释一下。

=snippet :'/snippets/text_limiter_js'
%h2.comic What are you doing?
%form{:method => 'post', :action => '/update'}
  %textarea.update.span-15#update{:name => 'status', :rows => 2, :onKeyDown => "text_limiter($('#update'), $('#counter'))"}
  .span-6
    %span#counter
      140
    characters left
  .prepend-12
    %input#button{:type => 'submit', :value => 'update'}

text_limiter_js.haml

:javascript
  function text_limiter(field,counter_field) {
    limit = 139;
    if (field.val().length > limit) 
      field.val(field.val().substring(0, limit));
    else
      counter_field.text(limit - field.val().length);
  }

0 个答案:

没有答案