2

私は、シナトラでツイッターのクローンを構築しているオライリーの本をフォローしています。Sinatra には (Rails のように) 「パーシャル」がないため、作成者はパーシャルのように機能する独自の「スニペット」を作成します。これはシナトラではかなり一般的であることを理解しています。

とにかく、彼のスニペットの 1 つ (以下の最初のものを参照) 内で、別のスニペット text_limiter_js (以下にコピーされています) を呼び出します。Text_limiter_js は基本的に JavaScript 関数です。

text_limiter_js の javascript 関数を見ると、2 つのパラメーターが必要であることがわかります。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);
  }
4

0 に答える 0