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