这是场景:
我的用户被呈现为网格,基本上是电子表格的精简版本.网格中的每一行都有文本框.当他们更改文本框中的值时,我正在对其输入执行验证,更新驱动网格的集合,并重新绘制页面上的小计.这全部由每个文本框的OnChange事件处理.
当他们点击"保存"按钮时,我正在使用按钮的OnClick事件对金额执行一些最终验证,然后将他们的整个输入发送到Web服务,保存它.
至少,如果他们将表单选中到"提交"按钮,则会发生这种情况.
问题是,如果他们输入一个值,那么立即单击保存按钮,SaveForm()在UserInputChanged()完成之前开始执行 - 一个竞争条件.我的代码不使用setTimeout,但我用它来模拟缓慢的UserInputChanged验证代码:
<!-- snip -->
<script>
var amount = null;
var currentControl = null;
function UserInputChanged(control) {
currentControl = control;
// use setTimeout to simulate slow validation code (production code does not use setTimeout)
setTimeout("ValidateAmount()", 100);
}
function SaveForm() {
// call web service to save value
document.getElementById("SavedAmount").innerHTML = amount;
}
function ValidateAmount() {
// various validationey functions here
amount = currentControl.value; // save value to collection
document.getElementById("Subtotal").innerHTML = amount; // update subtotals
}
</script> …
Run Code Online (Sandbox Code Playgroud) 最近的一个项目让我再次使用C#,我注意到之前没有的东西--C#的Intellisense显示了调用方法时可能抛出的异常
由于我主要使用VB.NET应用程序,因此在这些应用程序中使用此功能真的很不错,但遗憾的是,它缺少VB的Intellisense
有没有快速简便的方法我可以自定义Visual Studio的Intellisense来显示异常(以及XML注释中的其他成员)?或者我正在使用SDK查看完整修改?
更新:2008年9月29日下午1:49 - 我认为这比简单地更改配置设置更复杂.由于注释是基于XML的,我希望在Visual Studio目录中隐藏一个XSLT文件,但到目前为止还没有任何内容.看起来我将不得不深入研究Visual Studio SDK.
我在与vuex集成的vuejs项目中使用了Typescript语法。我想使用在.ts文件中计算的mapState方法,但是出现语法错误。目前,我正在针对计算函数使用docs建议的语法,我的意思是:
get counter(){
return this.$store.state.count;
}
Run Code Online (Sandbox Code Playgroud)
如果您阅读vuex文档,您将知道使用这种方法是重复性的,因此在大型应用程序中使用mapState感到无聊而不是非常容易且有用。所以我想在Typescript组件中使用mapState,但我不知道真正的方法。我尝试了以下使用mapState函数的方法,这是错误的,没有用:
get mapState({
counter:count
})
or
get mapState(['name', 'age', 'job'])
Run Code Online (Sandbox Code Playgroud)
如果您能帮助我,我将不胜感激。
我正在构建包含<dialog>
元素的 Web 组件。我使用 打开对话框HTMLDialogElement.showModal()
,这会将对话框移动到顶层。对话框的某些内容与顶层不兼容,即 Google Recaptcha,它在对话框下方呈现。
许多其他人已经注意到对话框元素和 ReCaptcha 的相同问题,一种方法似乎是使用HTMLDialogElement.show()
而不是 showModal。从可用性的角度来看,我认为这是可以接受的,但从可访问性的角度来看,我真的很喜欢它提供的好处HTMLDialogElement.showModal()
。也就是说,使所有其他 HTML 元素变得惰性,从而成为非交互性并从可访问性树中隐藏。通过使用inert
特性或属性,我可以自己使 HTML 文档的某个子树变得惰性。
截至今天(2023 年 10 月 31 日),MDN和HTML Living 规范都表明“摆脱惰性”是可能的,但这对于 HTML 作者来说似乎不可能。.show()
例如,使用 Chrome/Edge,使用以下 HTML,当我尝试通过将对话框的 inert 属性设置为 false 来故意“逃避惰性”时,如果使用打开,我无法与对话框内的元素进行交互。
HTML作者是否可以通过这种方式摆脱惰性?
const dialogOpener = document.getElementById("dialogOpener")
const modalOpener = document.getElementById("modalOpener")
const dialogCloser = document.getElementById("dialogCloser")
const testDialog = document.getElementById("testDialog")
dialogOpener.addEventListener("click", evt => {
testDialog.show()
document.body.inert = true
testDialog.inert = false
})
modalOpener.addEventListener("click", evt => …
Run Code Online (Sandbox Code Playgroud)我有一个项目,其中我的业务层是使用DI构建的,但我正在尝试额外的步骤并使用Windsor来管理对象构造.
我们只是说我有一个预先存在的数据层(我不想修改),可以通过以下界面访问:
interface IDataFactory {
IDataService Service { get; }
}
Run Code Online (Sandbox Code Playgroud)
我的业务层中的一系列类依赖于通过IDataFactory公开的服务:
IFactory factory = DataFactory.NewFactory();
IBusinessService service = new ConcreteBusinessService(factory.Service);
Run Code Online (Sandbox Code Playgroud)
我知道为了将IBusinessService注册到Castle Windsor容器,我会使用类似于此的代码:
IWindsorContainer container = new WindsorContainer();
container.AddComponent("businessService", typeof(IBusinessService), typeof(ConcreteBusinessService));
Run Code Online (Sandbox Code Playgroud)
但对于我的生活,我无法弄清楚如何使用我现有的工厂对象从我的数据层注册服务.从本质上讲,我想说:
container.AddComponent("dataService", typeof(IDataService), factory.service);
Run Code Online (Sandbox Code Playgroud)
Windsor似乎要我说容器.AddComponent("dataService",typeof(IDataService),typeOf(SomeConcreteDataService)),但在这个例子中,ConcreteDataService是该程序集的内部,因此在我的程序中不可访问.
鉴于我的程序集不知道SomeConcreteDataService,我将如何进行数据服务的连接?
这个问题与我自己的问题非常类似,除了我的情况,AddComponent("计算器",typeof(ICalcService),typeof(CalculatorService),"Create"); 调用不起作用 - CalculatorService将在另一个程序集内部,不可用于组件连接容器.
如果我有一个像12345这样的数字,并且我想要一个2345的输出,那么有一个数学算法吗?我的黑客想要将数字转换为字符串,并将其子串.我知道这会有效,但我确信必须有更好的方法,谷歌让我失望.
同样,对于12345,如果我想要1234,是否还有另一种算法可以做到这一点?我能想到的最好的是Floor(x / 10^(n))
,其中x是输入,n是要剥离的数字,但我觉得必须有更好的方法,而我却看不到它.
例如:
StudentRegistrationService<>c__DisplayClass1
<>f__AnonymousType56`2
DocShareClassification<GetErrors>d__2
我很确定这StudentRegistrationService<>c__DisplayClass1
是一个闭包,并且<>f__AnonymousType56`2
在指定匿名类型时生成,但我以前从未见过这个d__
类.除了这些还有吗?
c# ×2
javascript ×2
.net ×1
algorithm ×1
html ×1
html-inert ×1
ide ×1
typescript ×1
vuejs2 ×1
vuex ×1