【问题标题】:Re-write data into a textbox if it was deleted and nothing was written in place如果数据被删除并且没有写入任何内容,则将数据重新写入文本框
【发布时间】:2018-02-12 10:17:20
【问题描述】:

我有两个文本框,我可以在其中写入用于获取图表中 Y 轴的最小值和最大值的数值。

例如,如果我在 min = 0max = 100 上设置了值,图表的 Y 轴将从 0 到 100。如果我更改 max = 50,图表将呈现为 Y 轴从 0 到 50。

问题是,如果我删除该值并且不写任何内容,图表就会消失。我想要做的是,如果删除该值并且之后没有写入任何内容,则保留该值并且不对图表执行任何操作。

这是html:

<span class="min-max">
  Max:</br>
  <input type="number" ng-change="$ctrl.updateY()" ng-model="$ctrl.maxValue"></br>
  Min:</br>
  <input type="number" ng-change="$ctrl.updateY()" ng-model="$ctrl.minValue"></br>
</span>

这是js函数:

updateY() {
    const maxNumber = Number(this.maxValue);
    const minNumber = Number(this.minValue);
    this.lineView.chart.axis.range({max: {y: maxNumber}, min: {y: minNumber}});
}

有什么建议吗?

【问题讨论】:

  • 设置为默认0;
  • @GuruprasadRao 你能说得更具体些吗?无论如何,这仅适用于硬编码的初始值。如果它会被写入另一个值,比如说max = 2341,在我删除它之后我希望图表保持不变,比如 Y 轴到最大值为 2341
  • 只需检查if ( maxValue !== '' &amp;&amp; minValue !== '' ) Draw the range我希望 Angular 会从输入中修剪值

标签: javascript angularjs charts billboard.js


【解决方案1】:

由于 Angular 有两种数据绑定方式,当用户删除框中的文本时,$scope 中的值也随之改变。

你_可以_保留一份;也许通过使用onBeforeChange()onAfterChange()

但是,如果您说“如果文本为空,则插入前一个值”,那么您将混淆和惹恼删除当前的用户插入新值之前的值。

我建议您ng-sho/hide 一条消息,基于输入文本为空,“您看不到任何图表,因为 X 轴值为空白”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多