0

私はRactiveJsを使い始めたばかりで、最初に値でレンダリングされる入力タグを観察する際にいくつかの問題があります。

以下の入力フィールドを観察しています。

 {{#invoices:i}}
     <input class="text-center" type="date"" value="{{***date_modified***}}">
 {{/invoices}}

以下を使用して

 ractive.observe({
        '*.*.date_modified': function(newValue, ***oldValue***, keyPath) { 
               // some function 
         };
 });

チャレンジは初回「date_modified」が変更された「oldValue」が未定義です。「date_modified」が 2 回目に変更されると、「oldValue」は古い値を正しく返します。

「date_modified」は最初に値 (2014 年 11 月 22 日など) でレンダリングされます。

何かご意見は?

ありがとう

4

1 に答える 1

0

デフォルトでは、オブザーバーは未定義で「初期化」します。これは、初期設定ロジックに加えて、その状態がどのようになったかに関係なく、アプリの現在の状態oldValueで何かを行う単一の関数を作成する方が簡単であることが多いという考え方です。ある種の別の変更ハンドラ。

init: falseただし、次のようにオプションを渡すことで、最初の呼び出しを無効にすることができます。

ractive.observe('foo', handler, { init: false });

ただし、この場合、それよりも少し多くのことがあります。*バグを発見したことがわかりました - パターンオブザーバーは最初のキーとしてa を持つことができません。invoices.*.date_modifiedの代わりに使用する必要があります*.*.date_modifiedGitHub で問題が発生しました-ありがとう!

于 2014-04-24T03:57:45.850 に答える