Validation Breezejs字节属性验证错误
我正在尝试使用breezejs、knockout和webapi创建一个小应用程序。但是,我遇到了一个问题,可能是在为属性使用字节数据类型时出现了错误 我设法正确地传递数据并将其绑定到文本框,但是当我尝试更新它时,会出现一个错误,指出“优先级必须是值0和255之间的整数” 我有一个小样本来证明这个问题: 入门: 我已经下载了示例(目前为1.2.8) 打开ToDo示例 在TodoItem.cs中添加了另一个属性,在本例中,我添加了类型为(byte) 在TodoDatabaseInitializer.cs中添加了一些数据种子设定Validation Breezejs字节属性验证错误,validation,knockout.js,byte,breeze,Validation,Knockout.js,Byte,Breeze,我正在尝试使用breezejs、knockout和webapi创建一个小应用程序。但是,我遇到了一个问题,可能是在为属性使用字节数据类型时出现了错误 我设法正确地传递数据并将其绑定到文本框,但是当我尝试更新它时,会出现一个错误,指出“优先级必须是值0和255之间的整数” 我有一个小样本来证明这个问题: 入门: 我已经下载了示例(目前为1.2.8) 打开ToDo示例 在TodoItem.cs中添加了另一个属性,在本例中,我添加了类型为(byte) 在TodoDatabaseInitializer.
public static void SeedDatabase(TodosContext context)
{
_baseCreatedAtDate = new DateTime(2012, 8, 22, 9, 0, 0);
var todos = new[] {
// Description, IsDone, IsArchived
CreateTodo("Food", true, true, 1),
CreateTodo("Water", true, true, 2),
CreateTodo("Shelter", true, true, 10),
CreateTodo("Bread", false, false, 20),
CreateTodo("Cheese", true, false, 20),
CreateTodo("Wine", false, false, 3)
};
Array.ForEach(todos, t => context.Todos.Add(t));
context.SaveChanges(); // Save 'em
}
private static TodoItem CreateTodo(
string description, bool isDone, bool isArchived, byte priority)
{
_baseCreatedAtDate = _baseCreatedAtDate.AddMinutes(1);
return new TodoItem
{
CreatedAt = _baseCreatedAtDate,
Description = description,
IsDone = isDone,
IsArchived = isArchived,
Priority = priority
};
}
最后,通过在items数据绑定中添加以下行,在Index.html的UI中添加了一个文本框:
<input type="text" data-bind="value: Priority" />
它看起来是这样的:
<ul data-bind="foreach: items">
<li>
<div data-bind="visible: !isEditing()">
<input type="text" data-bind="value: Priority" />
<input type="checkbox" data-bind="checked: IsDone" />
<label data-bind="text: Description, click: $parent.edit, css: { done: IsDone, archived: IsArchived }"></label>
<a href="#" data-bind="click: $parent.removeItem">X</a>
</div>
<div data-bind="visible: isEditing">
<form data-bind="event: { submit: $parent.completeEdit }">
<input type="text" data-bind="value: Description, hasfocus: isEditing" />
</form>
</div>
</li>
</ul>
-
执行此操作后,运行应用程序,如果尝试修改条目,将出现一个错误,指出“优先级必须是介于0和255之间的整数”
我还想提到的是,若我将优先级的类型更改为int,它就可以正常工作
这实际上是一个bug还是我遗漏了什么?编辑:这已在Breeze v1.3.0中修复,现在可用
好的,这是一个bug,将在下一个版本中修复,可能在下周发布。当它发布后,我会发回这里。。。谢谢你找到这个:)
<ul data-bind="foreach: items">
<li>
<div data-bind="visible: !isEditing()">
<input type="text" data-bind="value: Priority" />
<input type="checkbox" data-bind="checked: IsDone" />
<label data-bind="text: Description, click: $parent.edit, css: { done: IsDone, archived: IsArchived }"></label>
<a href="#" data-bind="click: $parent.removeItem">X</a>
</div>
<div data-bind="visible: isEditing">
<form data-bind="event: { submit: $parent.completeEdit }">
<input type="text" data-bind="value: Description, hasfocus: isEditing" />
</form>
</div>
</li>
</ul>