双向绑定输入与RactiveJs

时间:2014-04-24 02:19:44

标签: data-binding ractivejs

我刚开始使用RactiveJs并且在观察输入标记时遇到了一些麻烦,最初使用值进行渲染。

我正在观察下面的输入字段。

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

使用以下

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

挑战是第一次&#34; date_modified&#34;是变化的&#34; oldValue&#34;未定义。第二次&#34; date_modified&#34;改变了&#34; oldValue&#34;正确返回旧值。

&#34; date_modified&#34;最初使用值(例如,22/11/2014)进行渲染,我怀疑这可能是问题所在,因为所有示例都在模板I

时将输入留空

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

默认情况下,观察员&#39;初始化&#39;使用未定义的oldValue - 这个想法是,编写一个与应用程序的当前状态做某事的单个函数通常更容易,无论该状态如何变为是,而不是一些初始设置逻辑加上某种单独的变更处理程序。

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

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

然而,在这种情况下,它有点多了。事实证明,你发现了一个错误 - 模式观察者没有*作为第一个关键。您需要使用invoices.*.date_modified代替*.*.date_modified。一个issue has been raised on GitHub - 谢谢!