問題タブ [angular-directive]

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 投票する
1 に答える
3430 参照

angularjs - ディレクティブ テンプレートの値が更新されない

私はそのようにディレクティブを設定しています(デモとしてのタイムアウト機能):

タイムアウト関数が実行されると、HTML は更新されず、値は のまま06:00です。変数が更新されたときにテンプレートを更新するにはどうすればよいですか? scope属性をリンクするセクションで何らかの方法でリンクする必要がありますか?

0 投票する
3 に答える
9963 参照

angularjs - オブジェクトが存在する場合のng-class angularjs

オブジェクトが存在する場合、クラスをアクティブ化するにはどうすればよいですか。その特定の配列にimage_idが存在する場合、クラスをアクティブにする必要があるjson配列があります。

ここではクラス test がアクティブですが、image_id が存在する場合、いくつかの css 属性を変更するために classonimage がアクティブになります。

ここで、ストーリーに画像が含まれている場合は、ストーリーに変更を加えたいと思います。ng-if で ng-class を有効にするにはどうすればよいですか。どうすればこれを達成できますか?

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

javascript - 文字列以外の値を Angular ディレクティブに渡すにはどうすればよいですか?

Web アプリケーションの「アクティビティ」をグラフィカルに表すカスタム angular ディレクティブがあります。私はこのように使用します:

私のディレクティブには分離されたスコープがあり、次のように宣言されていmodelますactive

属性については心配していませんmodelが、私のactive属性は常に文字列として扱われます。currentActivity == actが true の場合、active文字列値"true"( boolean ではなくtrue) を保持するか、そうでない場合"false"( ではなくfalse) を保持します。

これは、概念的にはブール値ですが、文字列として扱う必要があることを意味します。ng-class="{activityActive: active}"たとえば、代わりに書きたいと思いますng-class="{activityActive: active == 'true'}"。現在、余分な部分を忘れた場合、これは常に true と評価されます。両方とも true"false"です"true"

このような文字列以外の属性を取得する方法はありますか? これを達成するための最良の方法は何ですか?

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

angularjs - Select から Input に切り替えるディレクティブ - 発火しないことを確認する

選択 (ドロップダウン) を持つディレクティブを作成しようとしています。オプションの 1 つを選択すると、代わりに入力に変わります。

ドロップダウンには 1 ~ 12 の値と、「more...」という 1 つの値があり、ユーザーが「more...」を選択すると、選択は入力に変更されます。

問題は、変更がまったく発生しないことです。

私は人々が遊ぶために私のコードをプランカーに持っています: http://plnkr.co/edit/3SyFIYULDHMKgkJmtPtP?p=preview

私も ng-switch でも試しましたが、うまくいきませんでした:

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

javascript - AngularJS & D3 : D3 の Angular ディレクティブを複数回ロードする

d3 強制有向グラフの角度ディレクティブを作成しました。 コードはこちら。 $log.log("xx"); を使用します。コードをデバッグします。何らかの理由で、このディレクティブが複数回ロードされることに気付きました。ディレクティブが結合する mg-controller には、2 つのファクトリがあり、これら 2 つのファクトリは、コントローラが初期化されるたびに呼び出されます。使用する$log.log("xx");ことで、pay が読み込まれるときに d3 ディレクティブが少なくとも 6 回読み込まれ、各ファクトリに対して 2 回、その後に 2 回読み込まれることがわかりました。私が「回避した」方法は使用していますd3.select("svg") .remove();私のページには重複するsvgがありません。しかし、これはパフォーマンスに大きく影響します。さらに、同じコントローラーの下の同じページにいくつかの衣装フィルターを追加しました。フィルターが実行されるたびに、d3 ディレクティブがリロードされることに気付きました。フィルターは、同じコントローラーの下にあることを除いて、d3 ディレクティブとは関係ありません (フィルターの実行時にコントローラーがリロードされるとは思いません)。

問題は私のlink: function側にあると思います。面倒に見えますが、実際には次の 2 つのことしか行いません。1) d3 にフィードされるデータを生成し、2) d3 を実行してグラフを生成します。

2 つの関数を に入れ$scope.fdg、 で呼び出しtemplate:'<div>{{fdg()}}<div>'ます。これはおそらく非常に悪い習慣ですが、関数を呼び出す他の方法を見つけることができませんでした。

これら2つの関数を呼び出そうとしました

このように直接link: function

奇妙なことに、$scope.tags空であり、「[]」と「タグ」は定義されていません。関数が<forcedirected-graph tags="tags" style="overflow: hidden;"></forcedirected-graph> 引数を取得できなかった理由を本当に理解できませんでした。そういうわけで$scope.fdg.function()...、ビューから渡された引数に到達できるように、これら 2 つの関数をラップするためにばかげて使用しています。

正常にロードされる他の (d3) ディレクティブがいくつかあります。異常な d3 ディレクティブのテンプレートをそれらの作業ディレクティブに一致させようとしましたが、失敗しました :( (ディレクティブ リンクで引数/スコープが実際にどのように機能するか混乱しています)。

より完成したコード:ここここ.

Angular をより深く理解できるように、何が問題なのかを理解できれば素晴らしいと思います。角度は本当に素晴らしいです:)

前もって感謝します!

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

angularjs - ディレクティブは AngularJS の要素を認識しません

ディレクティブが正しく機能していないように見える理由を理解するのに苦労しています。問題の概要は次のとおりです。

Angular 要素を含む Ajax を使用して HTML を読み込みます。Ajax の応答は $compiled であるため、これらの要素は機能しますが、問題は 0 秒でタイムアウトする必要があることです。

そしてjs:

上記の foo-bar 要素は、 setTimeout(..., 0); で囲むまで見つかりません。

setTimeout を使用せずにそれらにアクセスするためのより良い方法があるかどうか誰かに教えてもらえますか?

0 投票する
4 に答える
7503 参照

angularjs - angular jsの最初と2番目のクリックで異なるイベントを実行します

div の 1 回目と 2 回目のクリックで異なるイベントを実行する必要がある状況があります。最初のクリックで div が展開され、2 回目のクリックで詳細ページにリダイレクトされます。Div には投稿の詳細が含まれます。

今まで、最初のクリックで div を展開し、ダブルクリックで詳細ページにリダイレクトしていました。

それを行うための最良の方法は何でしょうか。

今私の考えは、ng-clickでカウンターを作成してからイベントを実行することです。DOM End で実行できますか。

select(comment._id) changeurl(user.username,data.type,comment._id) を条件付きで実行できる他のディレクティブはありますか、またはこれらの関数を条件付きで呼び出すにはどうすればよいですか?

更新: ここでのダイアナのアドバイスは、更新されたステータスです:

ここでは、ng-repeat からの div はありません。ここでは、データに従って表示される 2 種類のレイアウトがあります。

}

関数にインデックスを付けて、それらを操作しようとしました。ネストされた ng-repeat のため、インデックス '0' を取得しています。.

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

javascript - div にない場合にのみディレクティブを実行する必要があります

呼び出されたディレクティブがmenuあり、メニュー要素の子でない場合にのみコードを実行する必要があります。

HTML

指令