我需要将动态值分配给 JavaScript 字典以用于 echarts,但是在将动态值分配给字典时,它显示的行为与分配 s 相比有所不同......
我需要将动态值分配给 JavaScript 字典以用于 echarts,但是当将动态值分配给字典时,它显示的行为与分配静态值不同。
分配静态值时:
response = {
"stacks": {"5G_L2": [{"Open": "43"},{"Close": "24"}],
"5G_L3": [{"Open": "12"},{"Close": "2"}]
}
};
调试窗口显示如下:
而当动态分配值时,如下所示:
var datastck=[];
var serverdata = '{{ barCdata | tojson }}';
resPbar = $.parseJSON(serverdata);
$.each(resPbar, function (i, item) {
var di={};
di[item.Team]=[{"Open": item.Open},{"Close": item.Close}];
datastck.push(di);
});
response = {
"stacks": datastck
};
调试窗口如下:
它添加了一个额外的数组层。我需要有静态分配结构来支持 echarts,请有人提供建议?
提前致谢。
我正在使用 bUnit 测试 Blazor 组件,但是在尝试模拟组件中的以下注入依赖项时遇到困难... [注入] public ILocalStorageService LocalStorage { ge...
我正在使用 bUnit 测试 Blazor 组件,但是在尝试模拟组件中以下注入的依赖项时遇到了困难……
[Inject]
public ILocalStorageService LocalStorage { get; set; } = null!;
我创建被测组件实例的基本代码是......
TestComponentSender cut = RenderComponent<TestComponentSender>(ps => ps
.Add(p => p.NotificationHelper, new TestNotificationHelper())
).Instance;
我无法像使用 Add
那样使用该方法 NotificationHelper
,因为注入的是本地存储属性,而不是参数。
我尝试在上面的代码之前添加以下行......
Services.AddScoped<ILocalStorageService>();
...但是在运行测试时会出现异常......
无法实例化服务类型“Blazored.LocalStorage.ILocalStorageService”的实现类型“Blazored.LocalStorage.ILocalStorageService”
我尝试引用 NSubstitute
Nuget 包,并在创建组件后添加以下行...
cut.LocalStorage = Substitute.For<ILocalStorageService>();
...但这给出了一个不同的例外......
无法为类型“InspiredGiving.Crm.Areas.General.Shared.TestComponentSender”上的属性“LocalStorage”提供值。没有类型为“Blazored.LocalStorage.ILocalStorageService”的注册服务。
有人能告诉我如何模拟这种注入的依赖关系吗?
更新 根据 Egil 的回答,我安装了 bUnit 测试包,并做了一些与 GitHub 页面上的代码类似的事情……
TestComponentSender cut = RenderComponent<TestComponentSender>(ps => ps
.Add(p => p.NotificationHelper, new TestNotificationHelper())
).Instance;
cut.LocalStorage = this.AddBlazoredLocalStorage();
然而,这却出现了例外……
System.InvalidOperationException:无法为类型“InspiredGiving.Crm.Areas.General.Shared.TestComponentSender”上的属性“LocalStorage”提供值。没有类型为“Blazored.LocalStorage.ILocalStorageService”的注册服务
我尝试使用罗伯特哈维在他的评论中展示的方法......
Services.AddScoped<ILocalStorageService>(_ => this.AddBlazoredLocalStorage());
...但遇到了同样的异常。