4

Breeze の最新バージョンでは、executeQueryLocally が壊れているようです。例えば:

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

return manager.executeQueryLocally(query);

私が遭遇している問題は、 のstringEquals通話にありgetPredicateFnます。

上記の単純なクエリの場合、trim()が id で呼び出されているため、

5にはメソッド「トリム」がありません

例外。

次に 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は Items モデルで定義されint、 では数値ですJavaScript。Breeze の以前のバージョンではstringEquals が実行されなかったため、数値のトリミングは行われませんでした。

4

1 に答える 1

3

わかりました、これは修正する必要があります。v0.73.1を確認してください。Breeze述語は、さ​​まざまな型(文字列と数値など)の値を比較するときに型強制を実行するようになりました。

于 2012-11-22T02:44:37.220 に答える