タグ付けされた質問 「angularjs」

オープンソースのJavaScriptフレームワークであるAngularJS(1.x)に関する質問に使用します。Angular 2以降のバージョンではこのタグを使用しないでください。代わりに、[angular]タグを使用してください。

5
AngularJSのフォルダー構造[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 この質問を改善する 大規模でスケーラブルなAngularJSアプリケーションのフォルダー構造をどのようにレイアウトしますか?
186 angularjs 

5
AngularJSでモデルの変更を監視するときに、初期ロードを無視するにはどうすればよいですか?
$ scope.fieldcontainerプロパティの深いグラフとして表示される単一のエンティティのエディターとして機能するWebページがあります。($ resourceを介して)REST APIから応答を受け取った後、 'fieldcontainer'にウォッチを追加します。このウォッチを使用して、ページ/エンティティが「ダーティ」かどうかを検出しています。現在、保存ボタンをバウンスさせていますが、ユーザーがモデルを汚すまで保存ボタンを非表示にしたいのです。 私が取得しているのは、時計の単一トリガーです。これは、.fieldcontainer = ...割り当てが時計を作成した直後に行われるために発生していると思います。最初の誤警報を吸収するために「dirtyCount」プロパティを使用することを考えていましたが、それは非常にハックに感じられます...そしてこれを処理するには「角度慣用的」な方法が必要であると考えました-私だけではありません汚れたモデルを検出するために時計を使用する。 時計を設定するコードは次のとおりです。 $scope.fieldcontainer = Message.get({id: $scope.entityId }, function(message,headers) { $scope.$watch('fieldcontainer', function() { console.log("model is dirty."); if ($scope.visibility.saveButton) { $('#saveMessageButtonRow').effect("bounce", { times:5, direction: 'right' }, 300); } }, true); }); 「UI(dirtyCount> 0)」で私の「UIダーティ」コードを保護するよりも、これを行うためのよりクリーンな方法があるはずだと考え続けています...

30
モジュール 'node-sass'が見つかりませんでしたエラー
構成:macOS High Sierra、バージョン10.13.2、node:v8.1.2 npm:5.0.3 angularjsプロジェクトでnpm startを実行すると、次のエラーが発生します。 ERROR in Cannot find module 'node-sass' この後、私は実行します: npm i node-sass 今私はこのエラーを受け取ります: gyp: No Xcode or CLT version detected! gyp ERR! configure error gyp ERR! stack Error: `gyp` failed with exit code: 1 npmがnode-sassをインストールしないのはなぜですか?node-sassをインストールするにはどうすればよいですか?

12
AngularJS:AngularJSがテンプレートをレンダリングした後に追加のコードを実行する方法は?
DOMにAngularテンプレートがあります。コントローラがサービスから新しいデータを取得すると、$ scopeのモデルが更新され、テンプレートが再レンダリングされます。これまでのところすべて良い。 問題は、テンプレートが再レンダリングされてDOMにある(この場合はjQueryプラグイン)後、追加の作業を行う必要があることです。 AfterRenderのように、聞くべきイベントがあるようですが、そのようなものを見つけることができません。たぶん、指令は進むべき道かもしれませんが、それはあまりにも早く発砲するように見えました。 ここに私の問題を概説するjsFiddleがあります:Fiddle-AngularIssue ==更新== 役立つコメントに基づいて、それに応じてDOM操作を処理するディレクティブに切り替え、ディレクティブ内に$ watchモデルを実装しました。ただし、私はまだ同じ基本的な問題を抱えています。$ watchイベント内のコードは、テンプレートがコンパイルされてDOMに挿入される前に発生するため、jqueryプラグインは常に空のテーブルを評価しています。 興味深いことに、非同期呼び出しを削除すると、すべてが正常に機能するので、これは正しい方向への一歩です。 これらの変更を反映するために更新したFiddleは次のとおりです。http://jsfiddle.net/uNREn/12/

4
ng-includeを使用するとスコープが失われる
私はこのモジュールのルートを持っています: var mainModule = angular.module('lpConnect', []). config(['$routeProvider', function ($routeProvider) { $routeProvider. when('/home', {template:'views/home.html', controller:HomeCtrl}). when('/admin', {template:'views/admin.html', controller:AdminCtrl}). otherwise({redirectTo:'/connect'}); }]); ホームHTML: <div ng-include src="views.partial1"></div> partial1 HTML: <form ng-submit="addLine()"> <input type="text" ng-model="lineText" size="30" placeholder="Type your message here"> </form> HomeCtrl: function HomeCtrl($scope, $location, $window, $http, Common) { ... $scope.views = { partial1:"views/partial1.html" }; …

5
AngularJSディレクティブとは何ですか?
AngularJSのドキュメントといくつかのチュートリアルを読むのにかなりの時間を費やしてきましたが、ドキュメントがどれほど近づき難いかに驚いています。 私は、AngularJSを入手しようとしている他の人にも役立つかもしれない、簡単で答えられる質問があります。 AngularJSディレクティブとは何ですか? ディレクティブのどこかにシンプルで正確な定義があるはずですが、AngularJSのWebサイトでは、これらの驚くほど役に立たない定義が提供されています。 ホームページ: ディレクティブは、AngularJSで利用できるユニークで強力な機能です。ディレクティブを使用すると、アプリケーションに固有の新しいHTML構文を作成できます。 では開発者ドキュメント: ディレクティブは、HTMLの新しいトリックを教える方法です。DOMコンパイル中に、ディレクティブはHTMLと照合されて実行されます。これにより、ディレクティブで動作を登録したり、DOMを変換したりできます。 そして、皮肉にも、聴衆がそれらが何であるかをすでに理解していると想定しているように見える指令についての一連の話があります。 だれでも、明確な参照のために、指令が説明するものの正確な定義を提供できますか? それは何か(例としてjQueryの明確な定義を参照) 対処することを意図している実際的な問題と状況 それが具現化する設計パターン、またはAngularJSのMVC / MVWとされるミッションにどのように適合するか。

1
ブートストラップとマテリアルデザインの選択[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 5年前休業。 この質問を改善する AngularJS(フルスタック)を使用して新しいプロジェクトを開始します。私のプロジェクトはレスポンシブである必要があり、テンプレートを最初から作成します。 では、レイアウトにブートストラップ3(角度ディレクティブを含む)とマテリアルデザインのどちらを選択するかについてのアドバイスが必要ですか? 私は誰かが両方の長所と短所をリストできるかどうか非常に感謝します。

9
ネストされたng-click呼び出し間のイベント伝播をキャンセルする最良の方法は何ですか?
ここに例があります。多くのサイトのようにイメージオーバーレイを作成したいとします。したがって、サムネイルをクリックすると、ウィンドウ全体に黒いオーバーレイが表示され、画像の拡大版が中央に表示されます。黒いオーバーレイをクリックすると、表示が消えます。画像をクリックすると、次の画像を表示する関数が呼び出されます。 HTML: <div ng-controller="OverlayCtrl" class="overlay" ng-click="hideOverlay()"> <img src="http://some_src" ng-click="nextImage()"/> </div> JavaScript: function OverlayCtrl($scope) { $scope.hideOverlay = function() { // Some code to hdie the overlay } $scope.nextImage = function() { // Some code to find and display the next image } } あなたは画像をクリックして、両方の場合、問題は、この設定でそれであるnextImage()とhideOverlay()呼ばれています。しかし、私が欲しいのは、nextImage()呼ばれることだけです。 次のnextImage()ような関数でイベントをキャプチャしてキャンセルできることを知っています。 if (window.event) { window.event.stopPropagation(); } ...しかし、オーバーレイ内の要素のすべての関数にこのスニペットをプレフィックスする必要がない、より優れたAngularJSの方法があるかどうかを知りたいです。
180 angularjs 


7
レガシーコードからAngularJSを呼び出す
AngularJSを使用して、レガシーFlexアプリケーションと対話するHTMLコントロールを構築しています。Flexアプリからのすべてのコールバックは、DOMウィンドウにアタッチする必要があります。 例(AS3内) ExternalInterface.call("save", data); 電話します window.save = function(data){ // want to update a service // or dispatch an event here... } JSサイズ変更関数内から、コントローラーが聞くことができるイベントをディスパッチしたいと思います。サービスを作成するのがよい方法のようです。AngularJSの外部からサービスを更新できますか?コントローラはサービスからのイベントをリッスンできますか?1つの実験(フィドルはクリック)で、サービスにアクセスできるように見えましたが、サービスのデータを更新してもビューに反映されません(例では、<option>をに追加する必要があります<select>)。 ありがとう!

13
AngularJSページ内の複数のng-app
Angular JSの学習を開始し、基本的なサンプルをいくつか作成しましたが、次の問題に悩まされています。 2つのモジュールと2つのコントローラーを作成しました。 shoppingCart -> ShoppingCartController namesList -> NamesController 各コントローラーには関連するビューがあります。最初のビューは正常にレンダリングされますが、2番目のビューはレンダリングされません。エラーはありません。 http://jsfiddle.net/ep2sQ/ この問題の解決を手伝ってください。 また、Viewにコンソールを追加して、コントローラーから渡される値を確認することもできます。 たとえば、次のdivにconsole.logを追加して、コントローラーの値を出力できます <div ng-app="shoppingCart" ng-controller="ShoppingCartController"> </div>
180 angularjs 


2
AngularJSの$ evalAsyncと$ timeoutの違いは何ですか?
私は今しばらくAngularJSを使用していて、たまに$ timeoutを使用する必要があることを発見しました(通常、jQueryプラグインを初期化するようです)。 最近、私はダイジェストサイクルをよりよく、より深く理解しようと努めており、$ evalAsync関数に出くわしました。 その関数はと同様の結果を生成するよう$timeoutですが、遅延を与えないだけです。使用$timeoutするたびに遅延が0になったので、$evalAsync代わりに使用するべきだったのかと思います。 2つの間に基本的な違いはありますか?どちらを使用するのですか?どっちを使うのがいいのか気になります。

6
バインディングがnull /未定義の場合のAngularjsテンプレートのデフォルト値(フィルターあり)
Angularの日付フィルターを使用して、日付である「date」というモデル属性を表示するテンプレートバインディングがあります。 <span class="gallery-date">{{gallery.date | date:'mediumDate'}}</span> ここまでは順調ですね。ただし、現時点では、日付フィールドに値がない場合、バインディングは何も表示しません。ただし、日付がない場合は文字列 'Various'を表示したい。 バイナリ演算子を使用して基本的なロジックを取得できます。 <span class="gallery-date">{{gallery.date || 'Various'}}</span> ただし、日付フィルターを使用することはできません。 <span class="gallery-date">{{gallery.date | date:'mediumDate' || "Various"}}</span> 日付フィルターと一緒に2項演算子を使用するにはどうすればよいですか?

9
AngularJSでリスト区切り文字としてコンマを使用する
アイテムのコンマ区切りリストを作成する必要があります。 <li ng-repeat="friend in friends"> <b ng-repeat="email in friend.email">{{email}}{{$last ? '' : ', '}}</b>... </li> AngularJSのドキュメントによると、式では制御フローステートメントを使用できません。これが私{{$last ? '' : ', '}}が機能しない理由です。 コンマ区切りのリストを作成する別の方法はありますか? 編集1 は、次のものよりも単純なものがあります。 <span ng-show="!$last">, </span>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.