尽管围绕html5形式的所有嗡嗡声,在我看来,在大多数情况下,通过这条路线,你正在创造额外的工作.
举一个例如,一个datepicker字段.本机html5实现在每个浏览器中呈现不同.此外,对于不支持此功能的浏览器,您的polyfilled解决方案(例如jquery UI)也将以不同方式呈现.
现在,当我们使用jquery完美地工作和统一解决方案时,我们已经为同一个表单引入了多个定制和维护点!
我很想听听这个领域的一些真实世界的经历,因为我对所有的嗡嗡声感到恼火!
我想完全关闭它,而不是获得任何解决方案范围的提示.我只看到我可以暂停的地方,但找不到关闭它的答案.
我最近创建了一个绑定处理程序,使用数据绑定语法将JQuery Validation插件合并到一个表单中.我发现自己需要向处理程序提供多条信息.我需要提供一个标志来强制执行验证,并在验证通过后触发一个回调.
问题:
提供多个args的最佳做法是什么?我只是依赖于对象表示法语法,但也可以提供另一个绑定并通过传递给处理程序的"allBindings"参数检查绑定...
向处理程序提供回调函数的最佳实践是什么?
下面是定义处理程序的js代码和应用处理程序的html代码:
<form id="step1"
data-bind="jqValidation:{enforce: true,
submitHandler: doSomethingInVM}">
<fieldset data-bind="with:searchRequest">
//fields
</fieldset>
<button type="submit">submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
ko.bindingHandlers.jqValidation = {
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var accessor = valueAccessor();
//need unwrapobservable??
if (accessor.enforce) {
$(element).find(':submit').removeClass('cancel');
$(element).validate({
submitHandler: function () {
if ($.isFunction(accessor.submitHandler))
accessor.submitHandler();
}
});
} else
$(element).find(':submit').addClass('cancel');
}
};
Run Code Online (Sandbox Code Playgroud) 假设我们有以下(过于简单)的场景:
我们有一个屏幕来查看人员详细信息和一个屏幕来编辑人员详细信息.
屏幕显示人员详细信息具有以下字段(仅显示):
名字姓氏生物
屏幕编辑人员详细信息显示有以下字段(在输入控件中):
ID(隐藏)名字姓氏生物
假设我们的显示视图模型如下所示:
public class DisplayPersonViewModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Bio { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我们的编辑视图模型如下所示:
public class EditPersonViewModel
{
[Required]
public int ID { get; set; }
[Required]
[StringLength(20)]
public string FirstName { get; set; }
[Required]
[StringLength(20)]
public string LastName { get; set; }
[Required]
public string Bio { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
2,呃之间差别不大?编辑模型在属性上有一个额外字段(ID)和一些属性.现在,如果我们要像这样结合2:
public class DisplayPersonViewModel
{
[Required]
[StringLength(20)] …Run Code Online (Sandbox Code Playgroud) 我想知道是否有任何VS 2010扩展用于触发requirejs优化,类似于squishit的工作方式:
这是我要执行的操作的一个非常简单的示例:
public class Bar
{
public void SomeMethod(string param)
{
//whatever
}
}
public interface IBarRepository
{
List<Bar> GetBarsFromStore();
}
public class FooService
{
private readonly IBarRepository _barRepository;
public FooService(IBarRepository barRepository)
{
_barRepository = barRepository;
}
public List<Bar> GetBars()
{
var bars = _barRepository.GetBarsFromStore();
foreach (var bar in bars)
{
bar.SomeMethod("someValue");
}
return bars;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的测试中,我正在模拟IBarRepository以返回在单元测试中定义的具体List,并将该模拟的存储库实例传递给FooService构造函数。
我想在FooService方法GetBars中验证从存储库返回的每个Bar都调用了SomeMethod。我正在使用起订量。有什么方法可以在不嘲笑返回的Bars列表的情况下(即使可能的话)并且不必在Bar中放置一些hacky标志(yuck)?
我正在跟踪DDD书中的示例,但我开始认为它闻起来是因为我在测试实现方面遇到了挑战。
是否有内置支持验证Web API中的恶意输入,类似于MVC的表单?
如果没有,有人可以建议一个"全局"过滤器/消息inpector /什么来验证恶意输入?我试图避免单独验证我的所有模型/参数......
目前我有以下元素
<h6 class="header">
Chance of Precipitation: <span data-bind="text: PrecipitationLabel"></span>
</h6>
Run Code Online (Sandbox Code Playgroud)
这样工作正常,但在我的情况下我并不需要一个span标记 - 只能加载显示的observable,因此我不需要更新元素.我知道我可以绑定一个计算/因变量,它将"Chance ..."文本与PrecipitationLabel结合起来,但是它会从视图中取出一些静态标记,这是不理想的.
是否有类似于Razor标签的东西只输出文字?
我正在尝试从父集合导航属性中删除子实体.b/t父母和孩子之间建立了一对多的关系.删除子项后,我希望数据库删除assoc.来自数据库的子记录,而不是通过使外键无效而孤立的记录.
有没有办法做到这一点,而无需通过DBContext中的子DbSet显式删除子进程?
我已经看到了与此主题相关的其他帖子,但我想我会将代码提炼为更简单的测试用例:
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using NUnit.Framework;
namespace basic_tests
{
[TestFixture]
public class OneToManyTests
{
#region Setup/Teardown
[SetUp]
public void SetUp()
{
_context = new Context();
Database.SetInitializer(new DataInitializer());
}
#endregion
private Context _context;
[Test]
public void CanRemoveChildThroughParent()
{
/**
this throws : "System.Data.Entity.Infrastructure.DbUpdateException : An error occurred while saving entities that do not expose foreign key properties for their relationships. The EntityEntries property will return null because a single entity cannot be identified as the source …Run Code Online (Sandbox Code Playgroud) 考虑以下代码:
//the var Test has NOT been declared yet
console.log((typeof Test)); // "undefined"
console.log(Test); //"Uncaught ReferenceError: Test is not defined"
Run Code Online (Sandbox Code Playgroud)
为什么第二个console.log语句抛出一个ReferenceError,第一个显示未定义.
javascript ×2
knockout.js ×2
amd ×1
architecture ×1
asp.net-mvc ×1
c# ×1
forms ×1
html ×1
html5 ×1
moq ×1
nunit ×1
one-to-many ×1
polyfills ×1
requirejs ×1
resharper ×1
squishit ×1
typeof ×1
unit-testing ×1
viewmodel ×1
webshim ×1