問題タブ [angularjs-decorator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
63986 参照

javascript - 「デコレータ」とは何ですか? また、どのように使用されますか?

AngularJS のデコレータとは正確には何なのか知りたいです。AngularJS のドキュメントの宣伝文句とyoutube videoでの簡単な (興味深いものではありますが) 言及を除いて、デコレータに関するオンラインの情報はあまりありません。

Angular の人たちが言うように、デコレータは次のとおりです。

サービスの装飾により、デコレータはサービス インスタンスの作成をインターセプトできます。返されたインスタンスは、元のインスタンス、または元のインスタンスに委任された新しいインスタンスの場合があります。

それが何を意味するのかよくわかりませんし、なぜこのロジックをサービス自体から分離するのかわかりません。たとえば、異なる条件で異なるものを返したい場合は、関連する関数に異なる引数を渡すか、その非公開状態を共有する別の関数を使用します。

私はまだ AngularJS 初心者なので、単に無知や悪い習慣を身につけただけだと思います。

0 投票する
1 に答える
368 参照

angularjs - $log をオーバーライドした後のログ メッセージが正しくない

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

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

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

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

プランカー

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

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

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

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

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

0 投票する
1 に答える
3628 参照

angularjs - angular デコレーター機能をテストする方法

$log サービスの機能を拡張するデコレータが Angular にあり、それをテストしたいのですが、これを行う方法がわかりません。ここに私のデコレータのスタブがあります:

これは基本的にメソッドをオーバーライドし、$log.debug()いくつかのカスタム処理を行った後に呼び出すことに注意してください。私のアプリではこれが機能'inside delegated method!'し、コンソールにメッセージが表示されます。しかし、私のテストでは、その出力が得られません。

デコレータの機能をテストするにはどうすればよいですか??
具体的には、実際にモック実装を装飾するようにデコレーターを注入するにはどうすればよい$logですか (以下を参照)。

これが私の現在のテストです(モカ/チャイですが、実際には関係ありません):

0 投票する
1 に答える
332 参照

javascript - Angular JS 1.2.18 $log 機能を拡張できますか?

$log メッセージを表示する toastr メッセージをポップしたいと思います。すなわち:

AngularJS 1.2.19 以降では、$provide.decoratorは$log の機能を拡張する優れた方法のようです。もちろん、私は 1.2.18 を使用しています。1.2.18 でこれを行う方法はありますか?

理想的には、既存の機能を完全にオーバーライドするのではなく、拡張したいと考えています。

Angular ソースを変更したくありません。

0 投票する
1 に答える
424 参照

javascript - $provide.decorator での AngularJS Minfication エラー

app.config に次のコード (URL で hashbang を強制するため) があり、縮小化で問題が発生しています。

私はそれがDIと関係があることを知っており、「$provide」を定義しましたが、他に何をする必要があるのか​​ わかりません。どんな助けでも大歓迎です。

0 投票する
2 に答える
5828 参照

angularjs - Angularjs - コントローラーの装飾

コントローラー用のデコレーターをセットアップしようとしています。私の意図は、アプリ内のすべてのコントローラーにいくつかの共通の動作を導入することです。

Angular 1.2.x で動作するように構成しましたが、コードを壊す 1.3.x 以降の重大な変更がいくつかあります。現在取得しているエラーは、「コントローラーは関数ではありません」です。

以下は、デコレータのコードです。

Angular 1.2.x - http://jsfiddle.net/3v17w364/2/ (動作)
Angular 1.4.x - http://jsfiddle.net/tncquyxo/2/ (壊れた)

0 投票する
0 に答える
1359 参照

angularjs - Angular 1.4 でスコープ関数をディレクティブに拡張する

angular-ui.github.io/bootstrap/ datepicker を拡張しようとしていますが、うまくいかないようです。

「TypeError: scope.monthChanged は関数ではありません」というエラーが表示され続けます。Angular のコードを適用しました- ui-bootstrap - datepicker - 月がいつ変更されたかを検出する方法はありますか?

HTML は次のとおりです。

このプランカーを試してください: http://plnkr.co/edit/sXuAkUz0l9XdtdUb457V?p=preview コードを調べると、インライン カレンダーを次の月に変更すると、次のエラー コードが表示されます: TypeError: scope.monthChanged is not a関数 –</p>

0 投票する
1 に答える
723 参照

angularjs - $exceptionHandler のデコレーター内で Angularjs-Toaster を使用する

次のように $exceptionHandler デコレータで処理されるエラーをトーストしようとしています。

これがプランカーです。これは私に次のエラーを与えています、

エラーを表示するためにAngularJS-Toasterを使用しています。デコレータ内にトースターサービスを挿入するにはどうすればよいですか?

0 投票する
1 に答える
469 参照

angularjs - $templateRequest デコレータを使用して ng-animate が機能しなくなった

ユーザーが認証されなくなったときに、angular js でテンプレート エラーを回避しようとしていました。これを行うために、私はこのstackoverflowソリューションにたどり着きました。

それはうまくいきましたが、コンソールエラーをスローせずに ng-animate が動作を停止したことに気付きました。

私は何が欠けていますか?

更新:これは使用されるコードです