diff --git a/Library/Extensions/ReadFromModel.cs b/Library/Extensions/ReadFromModel.cs index dc09920..8327f9c 100644 --- a/Library/Extensions/ReadFromModel.cs +++ b/Library/Extensions/ReadFromModel.cs @@ -1,5 +1,6 @@ using System.Collections; using System.Reflection; +using BlocklyNet.Core.Blocks; using BlocklyNet.Core.Blocks.Lists; using BlocklyNet.Core.Model; using BlocklyNet.Extensions.Builder; @@ -67,7 +68,8 @@ public class ReadFromModel : Block /// public override async Task EvaluateAsync(Context context) { - var data = context.Variables[Fields["VAR"]]; + var varName = Fields["VAR"]; + var data = context.Variables.TryGetValue(varName, out var local) ? local : context.GetRootContext().Variables[varName]; var path = await Values.EvaluateAsync("PATH", context) ?? ""; var rawIndexes = await Values.EvaluateAsync("INDEXES", context, false); var indexes = rawIndexes?.Cast().ToArray() ?? []; diff --git a/Library/Extensions/UpdateModel.cs b/Library/Extensions/UpdateModel.cs index a434fd2..8e50ae2 100644 --- a/Library/Extensions/UpdateModel.cs +++ b/Library/Extensions/UpdateModel.cs @@ -1,5 +1,6 @@ using System.Collections; using System.Reflection; +using BlocklyNet.Core.Blocks; using BlocklyNet.Core.Blocks.Lists; using BlocklyNet.Core.Model; using BlocklyNet.Extensions.Builder; @@ -77,7 +78,8 @@ public class UpdateModelProperty : Block /// public override async Task EvaluateAsync(Context context) { - var data = context.Variables[Fields["VAR"]]; + var varName = Fields["VAR"]; + var data = context.Variables.TryGetValue(varName, out var local) ? local : context.GetRootContext().Variables[varName]; var value = await Values.EvaluateAsync("VALUE", context); var path = await Values.EvaluateAsync("PATH", context) ?? ""; var rawIndexes = await Values.EvaluateAsync("INDEXES", context, false);