問題タブ [angularjs-scope]
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.
angularjs - AngularJS $scope 値が更新されない
ユーザーがログインできるアプリケーションがあります。ビューにログインすると、インフォバーとメイン セクションの 2 つに分割されます。メイン セクションは ng-view 経由で更新されます。ログインしていない場合、情報バーは ng-show を使用してビューから非表示になり、ログインすると表示されます。ログインに成功loginStatus.loggedIn
すると、ユーザー名と同じになるため、真実であり、ng-show を呼び出す必要があります。それとも私はそれを間違っていますか?
簡単なコード:
index.html
app.js
controllers.js
編集
angularjs - Angularjs ディレクティブ - ディレクティブ - コントローラー - サービスの相互作用
タイトルは少し口が悪いですが、私の現在の状況があります:
ルートにあるモーダル ポップアップのプレーン マークアップであるディレクティブ (D1) があります。コントローラーのスコープ (C1) 内にディレクティブ (D2) があります。D2 でモーダル D1 の内部にコンテンツを設定したいと考えています。最終的に D1 に注入したいネットワークからデータをプルする C1 に注入されるサービス (S1) があります。
D1 は次のようになります (モーダルのプレーン マークアップ):
C1 の S1 が D2 にデータを返して D1 に入力した後、D1 は次のようになります。D2 は、{{title}} などの D1 のモデル データの定義を担当します。
アイデアは、別のディレクティブ (D2) を介して定義/入力できる、一般的な分離されたモーダル (D1) を持つことです。
この機能を実装するのに苦労しています。ボーナス ポイントとして、D1 に、チェックボックス、入力、テキストなどのさまざまな要素をモーダルに入力するために呼び出すことができる API を持たせたいと考えています。これは、D1 の外部でマークアップを作成し、それを D1 に完全に挿入することとは異なります。
コードの基本は次のとおりです。
HTML マークアップ
ここまでフォローしていただきありがとうございます!
TL;DR: 役立つ別の質問を探してください
javascript - データが変更された場合、ディレクティブの ng-repeat が更新されない
私はより大きなプロジェクトでこの問題を抱えており、最も単純な例を作成しました。
いくつかのデータを含むコントローラーがあります。このデータはディレクティブに供給され、ネイティブの ng-repeat を使用して表示する必要があります。ただし、ディレクティブ コントローラーが実行されるとき、角度変数はまだ解析されていないため、繰り返しはレンダリングされません。
事前解析が必要な外部変数で繰り返しが機能するようにするにはどうすればよいですか?
ここにフィドルがあります。関数の実行時には未定義であることが示されているため、コンソールが開いていることを確認してください。ただし、1 秒後に定義されます。
ここに私のJS:
これが私のドームです
編集: 入力データが sl を読み取る必要がある以前のコードにエラーがありました。
ソリューションのフィドルはこちら: http://jsfiddle.net/paulocoelho/xqLAs/3/
angularjs - ディレクティブ内からコントローラーのスコープ プロパティを監視できますか?
この時計がディレクティブ内にあると仮定すると、このようにメインコントローラーから変数を監視することは可能ですか? これがディレクティブ全体です。このように見える場合、最初のページの読み込みでウォッチがトリガーされますが、その後はトリガーされません。questionNumber をディレクティブに渡しません。これが、それを認識していない理由ですか?
}))
javascript - データのロード時に Angular の Resource Promise が再レンダリングされない
私はAngularJSを初めて使用し、データがロードされたときにビューを再レンダリングするというリソースの約束を得るのに苦労しています。これにより、{{}} が (promise から) 空白に置き換えられますが、ビューはそのままになります。
私は、$apply、$digest、$watch などを使用して Promise が解決される問題の多くの例を見てきたので、これらの提案を受け入れて、私のアプローチの根本的な問題を知りたいと思っています。これが私のコントローラーコードです
私のロードされたスクリプトは
//ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js' //ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular-resource.min.js'
私が望む約束の振る舞いの説明はここにあります http://docs.angularjs.org/api/ngResource .$resource
javascript - ディレクティブ内の親スコープへのアクセス
この2つのディレクティブがあり、1つは互いにネストされています:
そして、これら 2 つのそれぞれは次のように定義されます。
上記のコードの多くは、より大きなアプリケーションの一部であるため、あまり意味をなさないかもしれませんが、私の質問に当てはまることを願っています. 私がやろうとしているのは、ディレクティブのスコープ プロパティをディレクティブenvato
から変更することですitems
。反復があり、それがいつ完了したかを知りたいので、その反復中に追加された DOM 要素に対して別の操作を実行できます。
たとえばscope.swipe
、ディレクティブ内に を定義しenvato
、変更を監視するとします。ディレクティブitems
では、いつ行われるかを監視してからng-repeat
、上記で定義したスコープ プロパティを変更しますscope.swipe
。これにより、ディレクティブ内の変更がトリガーされenvato
、操作を実行できることがわかります。
十分に明確であることを願っています。そうでない場合は、より多くのコードを試すか、より具体的にしてみます。上記で説明したことをどのように達成できますか?
編集:console.log(angular.element(element.parent()).scope());
ディレクティブ内で: を使用items
すると、ディレクティブのスコープが得られることは知っていenvato
ますが、より良い方法があるかどうか疑問に思っていました。
javascript - ディレクティブのコールバックとスコープ
特にディレクティブを使用しているモジュールでコールバックを呼び出す場合は、angularjs のスコープに頭を悩ませようとしています。同じことを達成するための 3 つの異なる方法を見つけました。それぞれのアプローチの長所と短所を理解しようとしています。
&
、=
、または親で関数を直接呼び出すのが適切なのはいつですか?
ディレクティブとディレクティブをホストするモジュールで必要なコードが少ないため、「=」記号でバインドすることを好みますが、ドキュメント(Understanding Transclusion and Scopes) によると、コールバックへのバインドが&
推奨される方法のようです。 、 どうして?
angularjs - カスタムディレクティブの属性値を取得できないのはなぜですか?
anglejsコード:
scope: { myId: '@' }
ディレクティブにが含まれていることがわかります。
そしてhtmlコード:
を定義したことがわかりますmy-id='123'
。
ディレクティブが警告することを願っています123
が、警告しundefined
ました。私の間違いはどこにありますか?
PS:ここにライブデモがあります:http://plnkr.co/edit/sL69NqWC70Qfwav5feP2?p = Preview
javascript - すべてのエントリの ngShow を切り替える AngularJS
「エントリ内のエントリ」ごとに、ng-show を true に切り替え、エントリに関する詳細を表示するボタンがあります。現在、このコードはすべてのエントリを ng-show=true に切り替えます。各ボタンが配置されているエントリの詳細のみを切り替えるようにします。
私の見解:
AngularJS:
angularjs - @ で定義された分離スコープ属性は、ディレクティブのリンク関数で未定義/消失します
ディレクティブには分離スコープがあり、スコープ属性は "@" で渡されます。
ディレクティブは次のように呼び出されます。
ディレクティブの定義方法は次のとおりです。
'厳密を使用';
スコープ オブジェクトを調べると (console.log(scope_ in firebug) の出力をクリックします)、iconImage、iconTooltip、iconRoute プロパティが正しく設定されているように見えます。
それでも、console.log(scope.iconImage)、console.log(scope.iconTooltip)、console.log(scope.iconRoute) は「undefined」を出力します