2016-04-06 1 views
0

私は別のプラグイン(https://github.com/leonardosantos/momentjs-business)を使用してMoment.jsを拡張しようとしているが、私は次のエラーました:拡張momentjs

捕捉されない例外RangeErrorを:

:最大コールスタックのサイズは、ここに私のコードを

を超えました

(function() 
{ 
    var moment = (typeof require !== "undefined" && require !== null) && !require.amd ? require("moment") : this.moment; 

    var originalAddMethod  = moment.fn.add; 
    var originalSubtractMethod = moment.fn.subtract; 
    var originalDiffMethod  = moment.fn.diff; 

    moment.fn.add = function (number , string) 
    { 
     return string === 'business days' ? moment.fn.businessAdd(number , string) : originalAddMethod.apply(this , arguments); 
    } 

}).call(this); 

は間違っては何ですか?私がやること?

+0

あなたはブラウザでコンソールをチェックして、正確にエラーを生産しているラインが表示されるはずです。あなたのコールスタックサイズの上限に達したようです。 – shivgre

+0

あなたのコードを深く掘り下げたわけではありませんが、その拡張機能は.addを呼び出します。一方、あなたは上書きしています。疑わしい場合は、これが問題かどうか評価する必要があります。 –

+0

あなたは問題を見つけるマギー! :D しかし、それを動作させるためにどんなアドバイス!たぶん私は元のコードをフォークする必要がありますし、代わりに私はoriginalAddMethodを呼び出すよコールを追加する必要がありますか? –

答えて

0

私は日付の試作品で、同じエラーでいくつかの前に見た一つの問題に実行している可能性があります。

moment.jsが、now.jsしかしではない)私のために働いたクイックフィックスであったが、この:

if(Date.prototype._toString==undefined) { Date.prototype._toString=Date.prototype.toString; } 

完璧ではないが、少なくとも、それはあなたが開始されます。

+0

問題を見つけました...内部でbusinessAdd関数のAddが呼び出されました。これはスタックの問題があるためです。私は再帰的な問題に陥る。この問題の https://github.com/leonardosantos/momentjs-business/blob/master/momentjs-business.js#L38 どれアドバイス:コードを参照してください? :D –