我正在使用Aurelia Web 应用程序并利用http.fetch来调用各种 Web API。
为了帮助调试,我使用 catch 语句记录 fetch 上的所有错误,如下所示:
this.http.fetch('Controller/APIFunc', mymethod).then(response => response.json()).then(info => {
//Do Stuff on success
}).catch(error => {
this.globalfuncs.HandleFetchErrors(error);
});
Run Code Online (Sandbox Code Playgroud)
有时,我会收到以下消息的错误“网络连接丢失”或“无法获取”或“已取消”,我将其归因于网络连接中断并忽略。
但最近(截至 2021 年 11 月)我开始收到一个新错误,每天都会出现几次,我不知道这意味着什么。
它只是指出“加载失败”。
我正在尝试重现它,但我无法在本地环境中重现它,因此我正在尝试找出它的含义。
我的客户没有就任何问题联系我,但我仍然对这个错误的出现频率感到困扰(每天大约 3-6 个)。
这也许是另一种类型的网络中断?我搜索了多个站点和线程,但找不到此捕获错误“加载失败”的解释。
任何想法都会很棒!
我们有一种情况,我们在多个网页(注释编辑器)中使用一个组件.此注释编辑器从页面上的输入元素获取值,并将该值放入用户可以修改它的组件中.用户在注释编辑器中键入并单击"提交".然后,注释编辑器组件将新值传递回原始页面上的输入.
我们使用"ref"来回传递值.一切正常,但是当我们从音符编辑器组件设置ref的值时,模型不会更新.我们发现我们需要输入一次才能更新模型.这是一个简单的要点来说明我们的例子:
这只是以编程方式设置ref值的简单示例.请注意"我输入的值是"是如何保持为"Hello"但输入字段更改为"Value Changed !!!!" 当你按下按钮.
https://gist.run/?id=fab025d6b99a93f9951b1a6e20efeb5e
有几点需要注意:1)我们想使用Aurelia的"ref"而不是"id"或"name".2)我们试图通过模型而不是"ref".我们可以成功获取模型的值并将其放入注释编辑器中,但是当我们将模型传回时,模型不会更新.
更新:
我们有答案(谢谢!).这是我们尝试传递模型的代码(因此我们甚至不需要使用ref).这对我们来说失败了.
这是page.html的视图
<TextArea value.bind="main.vAffectedClients" style="width:94%;" class="editfld" type="text" rows="6"></TextArea>
<input class="butn xxsBtn" type="button" value="..." click.trigger="OpenNoteDivAurelia(main.vAffectedClients)" />
Run Code Online (Sandbox Code Playgroud)
这是page.js的View-Model
import {NoteEditor} from './SmallDivs/note-editor';
...
@inject(NoteEditor, ...)
export class PageName {
constructor(NoteEditor, ...)
{
this.note = NoteEditor;
...
}
OpenNoteDivAurelia(myTargetFld)
{
this.note.targetFld = myTargetFld;
this.note.vHidTextArea.value = myTargetFld;
this.note.show();
}
}
Run Code Online (Sandbox Code Playgroud)
这部分打开我们的组件(注释编辑器)并成功将targetFld值放在组件中的TextArea中.
将值BACK放到page.js/page.html时,这是View-Model
CloseNote(populateFld)
{
if (populateFld)
{
//This is the line that doesn't seem to work
this.targetFld = vHidTextArea.value;
}
this.isVisible = false;
}
Run Code Online (Sandbox Code Playgroud)
最后一个函数"CloseNote"是不起作用的.该模型(我们认为指向this.targetFld)不会获得textarea的值.它没有错误,它根本不做任何事情.