【问题标题】:Breezejs Byte Property Validation ErrorBreezejs 字节属性验证错误
【发布时间】:2013-03-29 12:56:51
【问题描述】:

我正在尝试使用breezejs、knockout 和webapi 创建一个小型应用程序。但是我遇到了一个问题,可能是在为属性使用 Byte 数据类型时出现的错误。

我设法正确传递数据并将其绑定到文本框,但是当我尝试更新它时,会出现一个错误,指出“优先级必须是值 0 和 255 之间的整数”

我有一个小样本来演示这个问题:

开始使用: 我已经下载了http://www.breezejs.com/documentation/download 示例(当前为 1.2.8)

打开 ToDo 示例

在 TodoItem.cs 添加了另一个属性,在我的例子中,我添加了 (byte)

类型的优先级
public byte Priority { get; set; }

在 TodoDatabaseInitializer.cs 中添加了一些数据播种

    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
        };
    }

最后在 Index.html 的 UI 中添加了一个文本框,方法是在 items 数据绑定中添加以下行:

<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,它可以正常工作。

这实际上是一个错误还是我错过了什么?

【问题讨论】:

    标签: validation knockout.js byte breeze


    【解决方案1】:

    编辑:此问题已在 Breeze v1.3.0 中得到修复,现在可用。


    好的,这是一个错误,将在下一个版本中修复,可能下周发布。当它发布时,我会在这里发布。 ...感谢您找到这个:)

    【讨论】:

      猜你喜欢
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多