1

私は2、3か月間、そよ風とWebAPI(John Papaのサンプルから開始)を使用してSPAを構築してきました。数日前、私のWindows 8 VS2012の内部IEブラウザーで、breeze.debug.jsにjavascriptエラーが表示され始めました。

JavaScript critical error at line 4663, column 13 in //http://localhost:50033/Script/breeze.debug.js

SCRIPT1028: Expected identifier, string or number

他の開発マシンであるVS2012を搭載したWindows7に戻りましたが、エラーは発生しません。2台のマシン間のコードは同じです。AzureTFSを使用してコードを同期します。

エラーは終了時に発生します});

        function convertFromODataEntityType(odataEntityType, schema, metadataStore, serviceName) {
        var shortName = odataEntityType.name;
        var namespace = translateNamespace(schema, schema.namespace);
        var entityType = new EntityType({
            shortName: shortName,
            namespace: namespace, 
        });                          <==== line 4663

名前空間の後にあるコンマを削除すると、エラーは消えますが、6911行目の別の場所で再びエラーが発生します。

        day:         { fn: function(source) { return source.day;}, dataType: "Number" },
        month:       { fn: function(source) { return source.month; }, dataType: "Number" },
        year:        { fn: function(source) { return source.year; }, dataType: "Number"},
    };             <========= line 6911

上の行のコンマを削除すると、1271行でエラーが発生します

Unhandled exception at line 1271, column 17 in http://localhost:50033/Scripts/breeze.debug.js

0x800a01b6 - JavaScript runtime error: Object doesn't support property or method 'some'

このコードで:

function compile(self) {
    if (!self._compiledFn) {
        // clear off last one if null 
        if (self._fns[self._fns.length - 1] == null) {
            self._fns.pop();
        }
        if (self._fns.length === 0) {
            return undefined;
        }
        self._compiledFn = function (that, v) {
            return that._fns.some(function (fn) {
                return fn(that, v);
            });
        };
    };
    return self._compiledFn;
}

他の誰かがこの振る舞いを見たことがありますか?

4

2 に答える 2

3

推測ですが、IEを「互換性」モードで実行していないことを確認してください。'some'メソッドはES5標準の一部であり、'compatability'モードでは使用できません。

IEブラウザーとの互換性モードの問題を回避するために、HTMLヘッダーに以下を追加することを強くお勧めします。

<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1"/>
于 2013-01-06T00:33:45.173 に答える
3

私もそれに遭遇しました。実際、特に開発中に最後のk / vペアを削除または並べ替える場合は特に、これを自分で行うことがよくあります。

IE10やその他のブラウザーはより寛容ですが、ハッシュマップオブジェクトのキー/値リストの末尾のコンマを削除する必要があります...そうします。

FWIW、次の正規表現はそれらすべてを検索します

、(\ s *)\} \)

次の正規表現置換パターンはそれらを修正します(空白を保持します):

$ 1 \} \)
于 2013-01-06T19:59:13.103 に答える