为此使用离子滑尺。我正在尝试调用已设置为对数缩放的prettify函数的值。我的日志缩放有效,但是当我尝试将其调用回其他异步函数时,无法获得相同的结果。

我希望从prettify函数中获得的结果通过onStart,OnChange和onFinish函数进行处理。

onStart: function(data) {
    imprValue = data.from;
  console.log("onstart:" + imprValue);
    inputValues();
 },
 onChange: function(data) {
    imprValue = data.from;
   console.log("onchange:" + imprValue);
    inputValues();
 },
 onFinish: function(data) {
   imprValue = prettify();
   console.log("onfinish:" + imprValue);
   inputValues();
 },
 prettify: function(n) {
  // current position
  var position = Math.floor(n / this.max * 100);
  // position will be between 0 and 100
  var minPos = 0,
      maxPos = 100;
  // calculate logarithms
  var minLog = Math.log(this.min),
      maxLog = Math.log(this.max);
  // calculate adjustment factor
  var scale = (maxLog-minLog) / (maxPos-minPos);
  // round numbers
  n = Math.floor(Math.exp(minLog + scale * (position - minPos)));
  console.log("prettify function:" + n);
  return n;
 }


Jsfidde在这里:
http://jsfiddle.net/jsbegin/7dbowqfd/61/

最佳答案

得到了这项工作,想将其发布,以防其他任何人正在寻找。

您需要这样称呼它:

imprValue = this.prettify(data.from);


在这里工作jsfiddle:http://jsfiddle.net/jsbegin/7dbowqfd/68/

10-08 04:27