当前位置: 首页 > 知识库问答 >
问题:

使用Elessar库将ID传递到范围

耿志义
2023-03-14

我正在使用Elessar库创建一个多范围选择器:https://github.com/quarterto/Elessar

到目前为止效果很好,除了一件事...我似乎找不到任何将ID传递到预填充范围的功能。如果需要更新从数据库加载的现有范围,这就有问题了。

以下是文档中提供的选项:

new RangeBar({
  values: [], // array of value pairs; each pair is the min and max of the range it creates (Ex: [[50, 100], [150, 200]])
  readonly: false, // whether this bar is read-only
  min: 0, // value at start of bar
  max: 100, // value at end of bar
  valueFormat: function(a) {return a;}, // formats a value on the bar for output
  valueParse: function(a) {return a;}, // parses an output value for the bar
  snap: 0, // clamps range ends to multiples of this value (in bar units)
  minSize: 0, // smallest allowed range (in bar units)
  maxRanges: Infinity, // maximum number of ranges allowed on the bar
  bgMarks: {
    count: 0, // number of value labels to write in the background of the bar
    interval: Infinity, // provide instead of count to specify the space between labels
    label: id // string or function to write as the text of a label. functions are called with normalised     values.
  },
  indicator: null, // pass a function(RangeBar, Indicator, Function?) Value to calculate where to put a     current indicator, calling the function whenever you want the position to be recalculated
  allowDelete: false, // set to true to enable double-middle-click-to-delete
  deleteTimeout: 5000, // maximum time in ms between middle clicks
  vertical: false, // if true the rangebar is aligned vertically, and given the class elessar-vertical
  bounds: null, // a function that provides an upper or lower bound when a range is being dragged. call     with the range that is being moved, should return an object with an upper or lower key
  htmlLabel: false, // if true, range labels are written as html
  allowSwap: true // swap ranges when dragging past
});

理想情况下,我认为,您应该能够通过一个ID([min,max,ID])的范围,这样您就可以在更新滑块时检测到实际更改了哪个范围。

我认为该项目的GitHub的这个问题可能会涉及到它:https://GitHub.com/quarterto/elessar/issues/67

文件里有什么我遗漏的吗?这似乎是一个必要的组成部分。

谢谢,安德鲁

共有1个答案

严宏朗
2023-03-14

这一点根本没有文档记录,但RangeBar有一个方法.addrange(range,data)data参数与范围一起存储。您可以使用以下方法手动创建范围:

bar.addRange(model.getRangeValue(), {model: model})

并且,如果您的模型有一个方法changed,它可以告诉您该值是否与之前的值不同(例如,Backbink's的changedattributes):

bar.on('change', function(ev, values) {
  values.forEach(function(value, i) {
    var range = bar.ranges[i];
    if(range.data('model').changed(value)) {...}
  });
});

是的,这是可怕的,但实际上这是我在我的应用程序中使用Elessar做的。将范围连同change事件一起发送(当前只传递值和DOM元素)更有意义。我会在以后的版本中添加这个。

 类似资料:
  • 纬度和经度都显示出来了,所以我知道脚本正在工作,直到得到纬度和经度。我的问题是在window.location.href中传递id值。我得到[object HtmlPanelment]作为我的值。这是我访问“虚拟网站”的URLhttps://https://my_website/index.php?category=fast 食物

  • 问题内容: 对于javascript / ajax,我是一个真正的菜鸟,因此对您的帮助将非常感激 但主要关注菲尔·萨克雷留下的答案。我想知道是否有人可以详细说明我们如何(如果可以的话)使用jquery通过他的示例传递值/数据。他留下的代码示例如下: 例如,我们要使用php将任意数量的值传递给数据库,有人可以给我一个有关javascript函数所需内容的摘要示例吗?或详细说明上面发布的内容? 再次谢

  • 问题内容: 我有一个控制器,我写的,我在多个地方使用我的应用程序和,就像这样: 在控制器/模板中,我希望该值存在,并且整个事情都围绕着这个想法建立。不过,现在,我需要以稍微不同的方式使用控制器,而无需使用,但仍然需要能够传递。我看到并认为它可以满足我的需要,例如: 但这似乎不起作用。任何人都有任何想法如何在这样的单个实例中为范围传递变量? 编辑:在此上方的控制器正在加载和值,如下所示: 问题答案:

  • 问题内容: 我试图将图像和标题字段值传递给PHP,通常我会使用$ _FILES数组直接用PHP处理文件上传,但我不确定如何使用ajax将其创建/传递给PHP。我的表格: 我正在尝试使用它传递给PHP: 在PHP中,我正在尝试这样做: 优素福 问题答案: 我在我的一个项目中做到了这一点,下面的代码对我有用。请根据需要对代码进行必要的修改。 我的表单按钮: 我的JQuery / Ajax:

  • 问题内容: 我正在使用controllerAs语法来避免控制器中的$ scope汤,并且还使用ui.bootstrap来呈现模式视图。 我需要打开一个与当前控制器共享相同作用域的modalInstace。注入示波器时,您可能会执行以下操作: 但是,由于我没有注入作用域,而是使用controllerAs语法,因此无法正常工作。 根据我的发现,您将需要使用resolve来传递数据,但是必须通过函数显式

  • 问题内容: 我有类似的服务 我想从控制器做类似 getCurrentPosition可以正常工作,并且城市也已确定,但是我不知道如何在控制器中访问城市。 怎么了? 调用getCurrentCity时,它将调用getCurrentPosition来确定gps坐标。该坐标作为参数传递给onSuccess方法,对吗?因此,这与我要在getCurrentCity方法中执行的操作完全相同,但我不知道如何做。