Kendo ui 有没有办法从KendoUI定期编辑器获取定期字符串?

Kendo ui 有没有办法从KendoUI定期编辑器获取定期字符串?,kendo-ui,recurrence,Kendo Ui,Recurrence,因为我的计划设置需要一个自定义设置,所以我实现了单独的日历、计划程序和RecurrenceEditor小部件。到目前为止,一切都很顺利,但我无法从RecurrenceEditor小部件获取解析的字符串。我还没有在API文档中看到将规则作为字符串拉入的方法(RecurrenceEditor小部件也没有在那里真正记录) 以下是我设置recurrenceEditor的方式: $(document).ready(function() { $("#recurrence-editor").kendoRe

因为我的计划设置需要一个自定义设置,所以我实现了单独的日历、计划程序和RecurrenceEditor小部件。到目前为止,一切都很顺利,但我无法从RecurrenceEditor小部件获取解析的字符串。我还没有在API文档中看到将规则作为字符串拉入的方法(RecurrenceEditor小部件也没有在那里真正记录)

以下是我设置recurrenceEditor的方式:

$(document).ready(function()
{
  $("#recurrence-editor").kendoRecurrenceEditor({
    start: new Date(),
    change: function(e)
    {
      var editor = e.sender;

      // I want to get the recurrence rule string here.
    }
  });
});
在Firebug中,我没有看到任何东西可以提示我可能尝试的方法或属性。到目前为止,我已经尝试:

editor.ruleValue
editor.recurrenceRule
看起来我可以访问一些信息,但如果我可以从递归编辑器本身获得它,我不想将自己的选择写入可解析字符串方法

更新:当我这样设置时:

$(document).ready(function()
{
  $("#recurrence-editor").kendoRecurrenceEditor({
    start: new Date(),
    edit: function(e)
    {
      var editor = e.sender;
      var recurrenceString = editor.RecurrenceRule;

      return recurrenceString;
    }
  });
});
编辑事件从不激发。可能是因为我没有将递归编辑器作为Scheduler小部件的一部分实现,而是作为页面上的一个独立小部件实现


谢谢

您必须从编辑器的事件编辑/创建者模式中描述的事件中获取它。一旦你得到这个事件,它就是
.RecurrenceRule
,如果内存可用,它就是
e.event.RecurrenceRule


有趣的是,该字符串中使用的标准是

在调度程序的编辑事件中设置定期编辑器,它将触发更改事件,value属性是标准的iCal定期规则

这是我的:

// Setup Recurrence Editor
// Telerik support recommends this method over the common inline script
// because it allows us to choose which recurrence editor.  However, it does
// break the MVVM two-way bindings, so the current value MUST be explicitly set
// on creation, and the change event must be handled.
var event = e.event,
    container = e.container,
    recurrenceEditor = container.find("#recurrenceEditor");

if (kendo.support.mobileOS === false) {
    recurrenceEditor.kendoRecurrenceEditor({
        start: new Date(e.event.start),
        value: e.event.recurrenceRule,
        timezone: self.scheduleConfig.timezone,
        messages: self.scheduleConfig.messages.recurrenceEditor,
        change: function (ev) {
            event.set("recurrenceRule", this.value());
        }
    });
} else {
    // The Mobile Recurrence Editor requires the parent kendo pane
    // be passed as a parameter, otherwise it will crash when the
    // user attempts to alter the frequency

    var pane = container.parent(".km-pane").data("kendoMobilePane");

    recurrenceEditor.kendoMobileRecurrenceEditor({
        start: new Date(e.event.start),
        value: e.event.recurrenceRule,
        timezone: self.scheduleConfig.timezone,
        messages: self.scheduleConfig.messages.recurrenceEditor,
        pane: pane,
        change: function(ev) {
            event.set("recurrenceRule", this.value());
        }
    });
}
和HTML(在自定义编辑器模板中)



感谢您的回复,但在发送到更改事件处理程序的Javascript事件信息中,事件和RecurrenceRule都未定义。您能否在编辑事件上尝试该代码,看看它是否有效,如果您在更改事件上需要它,我们将向后工作?编辑了上面的原始问题(注释太短)。简而言之,编辑事件与我如何实现RecurrenceEditor小部件无关。
 <div class="lineEntry" data-bind="invisible: recurrenceId">
    <div id="recurrenceEditor" name="recurrenceRule" data-bind="value: recurrenceRule" class="toInlineBlock">
    </div>
 </div>