4

Breeze 的最新版本似乎破坏了 executeQueryLocally。例如:

var query = new breeze.EntityQuery()
            .from("Items").where('id', '==', id);

return manager.executeQueryLocally(query);

我遇到的问题是stringEqualsgetPredicateFn.

在上面的简单查询的情况下,trim()正在调用 id 导致

5 没有方法'trim'

例外。

这是 Breeze stringEquals 函数:

 function stringEquals(a, b, lqco) {
    if (lqco.usesSql92CompliantStringComparison) {
        a = (a || "").trim();
        b = (b || "").trim();
    }
    if (!lqco.isCaseSensitive) {
        a = (a || "").toLowerCase();
        b = (b || "").toLowerCase();
    }
    return a == b;
}

编辑

id定义为int在 Items 模型上,并且是 中的数字JavaScript。Breeze 的早期版本没有这样做stringEqual,因此没有尝试修剪数字。

4

1 回答 1

3

好的,这应该修复。请检查 v0.73.1。Breeze 谓词现在将在比较不同类型的值(如字符串与数字)时执行类型强制。

于 2012-11-22T02:44:37.220 回答