Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在RactiveJS中访问decorator中的对象_Javascript_Ractivejs - Fatal编程技术网

Javascript 如何在RactiveJS中访问decorator中的对象

Javascript 如何在RactiveJS中访问decorator中的对象,javascript,ractivejs,Javascript,Ractivejs,我正在使用Pikaday日期选择器作为RactiveJS中的装饰器,希望在装饰器之外访问日期选择器的api,但将其添加到返回对象似乎不起作用。有人能给我指一下正确的方向吗 您需要在saleEndDecorator函数中调用setDate 您需要在saleEndDecorator函数中调用setDate decorator被设计成可重用的连接实用库和外部库的桥梁——因此,与其有一个startdate decorator和一个enddate decorator,不如有一个pikaday decora

我正在使用Pikaday日期选择器作为RactiveJS中的装饰器,希望在装饰器之外访问日期选择器的api,但将其添加到返回对象似乎不起作用。有人能给我指一下正确的方向吗

您需要在saleEndDecorator函数中调用setDate

您需要在saleEndDecorator函数中调用setDate


decorator被设计成可重用的连接实用库和外部库的桥梁——因此,与其有一个startdate decorator和一个enddate decorator,不如有一个pikaday decorator

然后,装饰器函数负责管理自己的状态并与实际实例交互。如果您发现自己试图获取由装饰者创建的对象的引用,例如Pikaday实例,那么它通常是一个红色标志

这里有一种方法可以做到:

在本例中,我们将向decorator的两个实例传递一个键路径。当使用每个节点调用pikadayDecorator函数时,将使用两个参数调用它—节点和键路径。您可以有其他参数-只需用逗号分隔它们

然后,装饰器可以设置双向绑定-它观察给定的键路径,例如startdate或enddate,并在其更改时调用Pikaday实例的setDate方法。我们还使用onSelect方法在所选日期更改时更新Ractive的模型-这意味着我们可以在模板中的其他位置,甚至在Ractive实例之外使用该日期:

ractive.observe('startdate', function (newDate) {
  // This may have been as a result of a `ractive.set()`, or
  // because the user interacted with the datepicker
  console.log('startdate changed to', newDate);
});
请注意,Pikaday将自动将字符串(如“2015-01-01”)转换为日期对象


有。

装饰器被设计成可重复使用的桥梁,连接实际库和外部库-因此,与其有开始日期装饰器和结束日期装饰器,不如有一个单独的pikaday装饰器

然后,装饰器函数负责管理自己的状态并与实际实例交互。如果您发现自己试图获取由装饰者创建的对象的引用,例如Pikaday实例,那么它通常是一个红色标志

这里有一种方法可以做到:

在本例中,我们将向decorator的两个实例传递一个键路径。当使用每个节点调用pikadayDecorator函数时,将使用两个参数调用它—节点和键路径。您可以有其他参数-只需用逗号分隔它们

然后,装饰器可以设置双向绑定-它观察给定的键路径,例如startdate或enddate,并在其更改时调用Pikaday实例的setDate方法。我们还使用onSelect方法在所选日期更改时更新Ractive的模型-这意味着我们可以在模板中的其他位置,甚至在Ractive实例之外使用该日期:

ractive.observe('startdate', function (newDate) {
  // This may have been as a result of a `ractive.set()`, or
  // because the user interacted with the datepicker
  console.log('startdate changed to', newDate);
});
请注意,Pikaday将自动将字符串(如“2015-01-01”)转换为日期对象


还有。

这些传递给装饰器的附加参数是通过定位而不是参数名完成的吗?我想将mindate和maxdate作为参数,但在第一次调用decorator时只需要mindate,在第二次调用时只需要maxdate,但如果通过定位而不是命名传递这些参数,这将很困难,有什么想法吗?@AndrewSmith您可以使用对象表示法:decorator='pikaday:{mindate:2015-01-01}甚至decorator='pikaday:{mindate:{{mindate}}},如果它是动态的,那么您需要实现一个更新方法,该方法与teardown一起返回。这样您就不必担心为@rich传递null值hanks,这正是我所要寻找的。传递给装饰器的这些附加参数是通过定位而不是参数名完成的吗?我想知道将mindate和maxdate作为参数,但在第一次调用decorator时只需要mindate,在第二次调用时只需要maxdate,但是如果通过定位而不是命名传递这些参数,这将很困难,有什么想法吗?@AndrewSmith您可以使用对象表示法:decorator='pikaday:{mindate:2015-01-01}'甚至decorator='pikaday:{mindate:{mindate}},如果它是动态的,那么您需要实现一个更新方法,该方法与teardown一起返回。这样,您就不必担心为@rich传递空值hanks,这正是我想要的。