2016-06-28 11 views
1

私は、アプリケーションにbowerを使用して角ブートストラップライブラリを含めました。ui-bootsrapの関数をオーバーライドします。

私は現在、新しいバージョンで解決されたバグを含む(古い)バージョンを使用しています。しかし、私の状況ではのアップグレードはまだできません

index.htmlページのbowerのインポートラインの下にカスタムの変更されたjsファイルを追加することも考えましたが、コンパイルエラーが発生します。

私はライブラリui-bootstrap.jsの.jsのバグを含んでいる正しいLOCを知っていますが、私は自分の変更を上書きする自動構築システムを開発しているので、これらの変更は適切ではありません。

したがって、私はバグのある関数を呼び出す場所(コントローラまたはページのサービス)に関数を上書きしたいと思います。

これも可能ですか?もしそうなら、どうやって上書きするのがいいですか?

+1

あなたのオートメーションをハッキングするこの方法でコードをハッキングするよりビルドが良いです – amd

+0

@Ahmadあなたにもっと同意できませんでした。数週間後にアップグレードが行われるのは、ブートストラップの新しいバージョンが必要なことです。新しいバージョンの角度が必要なので、ウェブサイト全体をかなり変更する必要があります。この仕事は数週間で予定されていますが、現在私は「迅速な」解決策を考え出す必要があります。 – Joetjah

+0

どのような種類のコンパイルエラーがありますか?どうしてそれを手に入れましたか?どのようにコードをコンパイルしますか?通常は –

答えて

2

変更したいメソッドのデコレータを作成することができます。

作る、あなたの工場のような

app.factory('myService',function(){ 
    return { 
    getData: function() { 
     // your code 
    } 
    }; 
}); 

の下に見えるあなたがたgetData()関数の機能を変更したい場合は今、あなたはgithubの上

app.config(function($provide) { 

    $provide.decorator('myService', function($delegate) { 
    var oldFunc = $delegate.getData; 
    $delegate.getData = function() { 
     // your updated code 
     return oldFunc(); 
    }; 

    return $delegate; 
    }); 
}); 
+0

アイデアは良いですが、コードスニペットはスクリーンショットよりはるかに優れています。 –

+0

今すぐ確認...投稿を更新しました。 –

+0

(私はいくつかのタイプミスを修正しましたが、今は良く見えます、+1) –

2

以下のようなフォークangular-bootstrapそれを行うことができたと希望の変更をしてbower.jsonのgit urlを使用してください:

{ 
    "dependencies": { 
    "angular-bootstrap": "[email protected]:yourgithubuser/angular-bootstrap.git" 
    } 
} 
関連する問題