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”更改“oldValue”正确返回旧值。

“date_modified”最初是用一个值(例如,22/11/2014)呈现的,我怀疑这可能是问题,因为当模板 I 时,所有示例都将输入留空

有什么想法吗?

谢谢

4

1 回答 1

0

默认情况下,观察者使用 undefined 来“初始化” oldValue——这个想法是,通常更容易编写单个函数来处理应用程序的当前状态,而不管该状态是如何形成的,而不是一些初始设置逻辑加上某种单独的变更处理程序。

init: false但是您可以通过传递一个选项来禁用第一次调用,如下所示:

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

然而,在这种情况下,还有更多的事情要做。事实证明,您发现了一个错误 - 模式观察者不能将 a*作为第一个键。您需要使用invoices.*.date_modified而不是*.*.date_modified. 在 GitHub 上提出了一个问题- 谢谢!

于 2014-04-24T03:57:45.850 回答