Below setExtremes对初始图表工作正常。但是当我切换页面并再次重新打开图表或打开新图表(新json文件)时,below setExtremes停止工作,不再更新最小最大值。任何关于为什么会发生这种情况的建议。
yAxis[BtnID].setExtremes(val1, val2);
我能让它工作的唯一方法是通过强制重新加载我的应用程序,然后当我重新打开图表或打开新图表(新的json文件)时它工作。下面是我的实际代码。json数据没有问题。我得到的BtnID,val1,val2值很好,只有setExtremes不工作(第一次工作,但之后不工作)。
点击导航栏上的按钮,如下图所示,打开一个模态,用户在其中输入val1和val2。然后将其发送到index.js。
Navbar.razor:
<button @ref="_btn1Ref" id="0" @onclick=OpenDialog1>dialog1</button>
<button @ref="_btn2Ref" id="1" @onclick=OpenDialog2>dialog2</button>
@code{
private MyData model1 = new MyData { val1= 0, val2= 0 };
private MyData model2 = new MyData { val1= 0, val2= 0 };
private IModalDialog? modalDialog;
private async Task OpenDialog1()
{
var request = new ModalRequest { InData = this.model1 };
if (this.modalDialog is not null)
await modalDialog.ShowAsync<MyForm>(request);
await JSRuntime.InvokeVoidAsync("getValues", this.model1.val1, this.model1.val2, _btn1Ref);
}
...
Index.razor:
protected override async Task OnAfterRenderAsync(bool firstRender)
{
var fileName = @fileNameFromLandingPage;
await JSRuntime.InvokeVoidAsync("CreateChart", fileName);
}
Index.js:
function CreateChart(fileName) {
$.getJSON(fileName, function (data) {
var chart = Highcharts.chart('container', { ....
//Actual code
window.getValues = function (val1, val2, elem) {
var BtnID = elem.getAttribute('id');
yAxis[BtnID].setExtremes(val1, val2);
// If I directly use onclick ID to setExtremes instead of window.getValues, it always works. But not able to pass dialog val1 val2.Have harcoded below.
$("#0").click(function () {
yAxis[0].setExtremes(4, 8);
});
}
});
}
1条答案
按热度按时间2vuwiymt1#
不确定这是否导致了问题,但为什么
window.getValues
嵌套在CreateChart
函数中?您的Index.js
应该如下所示: