1

メッセージの をログに記録するために、angular の$logファクトリを装飾しようとしています。timestamp

この動作を除いて、これまでのところかなりうまく機能します。

angular のデフォルト設定でログインすると、次のメッセージが表示されます。

オブジェクトのメッセージ {name: "bryan", message: "was here"} 3 番目の引数

プランカー

デコレーターを作成した後、ログは次のようになりました。

[「メッセージ」、オブジェクト、「第 3 引数」]

プランカー- コードはこちら

そのため、オブジェクトはコンソールに展開されませんでした。完全なオブジェクトを表示するには、メッセージをクリックする必要があります。

私が欠けているものを誰かが知っていますか?または、これを行うより良い方法を知っていて、タイムスタンプをメッセージの先頭に入れますか?

4

1 に答える 1

2

argumentの引数のリストに配列を展開する必要がありますwarn()。で達成できますapply()。これは単なる JavaScript のトリックです。

warn: function () {
    //create a new args. You can't modify arguments since it is controlled by AngularJS
    var args = [new Date()];
    angular.forEach(arguments, function (i) {
        args.push(i);
    })
    $delegate.warn.apply(null, args);
}

$delegate.warn.apply(null, args);として評価され$delegate.warn(args[0], args[1], ...);ます。

于 2013-08-18T03:07:39.257 に答える