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

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


2
AngularJS uiルーターがURLなしで状態間でデータを渡す
私は、URLでデータを公開せずに2つの状態間でデータを渡すというこの問題に直面しています。ユーザーがこの状態に直接到達できないようです。 例えば。「A」と「B」の2つの状態があります。状態「A」でサーバー呼び出しを実行し、呼び出しの応答を状態「B」に渡します。サーバー呼び出しの応答は文字列メッセージであり、非常に長いため、URLでそれを公開することはできません。 それで、角度uiルーターで、URLパラメータを使用せずに状態間でデータを渡す方法はありますか?

7
AngularJSアプリケーションにいくつかの小さなユーティリティ関数を追加するにはどうすればよいですか?
AngularJSアプリケーションにいくつかのユーティリティ関数を追加したいと思います。例えば: $scope.isNotString = function (str) { return (typeof str !== "string"); } それらをサービスとして追加するためにこれを行う最良の方法はありますか?私が読んだものからこれを行うことができますが、HTMLページでこれらを使用したいので、サービス内にある場合でも可能ですか?たとえば、以下を使用できますか? <button data-ng-click="doSomething()" data-ng-disabled="isNotString(abc)">Do Something </button> 誰かが私にこれらを追加する方法の例を教えてもらえますか?サービスを作成する必要がありますか、それとも他に方法がありますか?最も重要なのは、これらのユーティリティ関数をファイル内に配置し、メインセットアップの別の部分と組み合わせないようにすることです。 私はいくつかの解決策があることを理解していますが、どれもそれほど明確ではありません。 ソリューション1 -Urbanが提案 $scope.doSomething = ServiceName.functionName; ここでの問題は、20の機能と10のコントローラーがあることです。これを行うと、各コントローラに多くのコードを追加することになります。 ソリューション2-私が提案 var factory = { Setup: function ($scope) { $scope.isNotString = function (str) { return (typeof str !== "string"); } これの欠点は、すべてのコントローラーの開始時に、$ scopeを通過した各サービスに対してこれらのセットアップ呼び出しを1つ以上持つことです。 ソリューション3 -Urbanが提案 …
146 angularjs 

12
約束の価値にアクセスするには?
私はAngularのドキュメントからこの例を見てい$qますが、これはおそらく一般的な約束に当てはまると思います。以下の例は、コメントが含まれたドキュメントからそのままコピーされています。 promiseB = promiseA.then(function(result) { return result + 1; }); // promiseB will be resolved immediately after promiseA is resolved and its value // will be the result of promiseA incremented by 1 これがどのように機能するのか私にはわかりません。.then()最初のの結果を呼び出すことができる場合は、.then()それらを連鎖させることができます。これpromiseBは、私ができることがわかっているため、型のpromiseオブジェクトObjectです。それはではありませんNumber。では、「その値は、promiseAが1ずつ増加した結果になる」とはどういう意味ですか 私はそれにアクセスするpromiseB.valueべきですか、それともそのようなものですか?成功のコールバックはどのようにプロミスを返し、「結果+ 1」を返すことができますか?何か不足しています。

3
デフォルトオプションを使用したAngularJSディレクティブ
私はangularjsから始めて、いくつかの古いJQueryプラグインをAngularディレクティブに変換する作業をしています。(要素)ディレクティブのデフォルトオプションのセットを定義したいのですが、属性にオプション値を指定することでオーバーライドできます。 私は他の人がこれを行った方法を見回してきました、angular-uiライブラリではui.bootstrap.paginationが同様のことをしているようです。 最初に、すべてのデフォルトオプションが定数オブジェクトで定義されます。 .constant('paginationConfig', { itemsPerPage: 10, boundaryLinks: false, ... }) 次に、getAttributeValueユーティリティ関数がディレクティブコントローラにアタッチされます。 this.getAttributeValue = function(attribute, defaultValue, interpolate) { return (angular.isDefined(attribute) ? (interpolate ? $interpolate(attribute)($scope.$parent) : $scope.$parent.$eval(attribute)) : defaultValue); }; 最後に、これはリンク関数で属性を読み込むために使用されます。 .directive('pagination', ['$parse', 'paginationConfig', function($parse, config) { ... controller: 'PaginationController', link: function(scope, element, attrs, paginationCtrl) { var boundaryLinks = paginationCtrl.getAttributeValue(attrs.boundaryLinks, config.boundaryLinks); …

2
サーバーからデータを取得する推奨方法
を使用せずにAngularJSでサーバーデータソースに接続するための推奨される方法は何ですか$resource。 には次の$resourceような多くの制限があります。 適切な先物を使用していない 十分な柔軟性がない
145 angularjs 

2
AngularJS $ resource RESTfulの例
$ resourceを使用してRESTful Webサービス(まだ作業中です)を呼び出したいのですが、AngularJSスクリプトが最初に正しいかどうかを確認したいと思います。 todo DTOには次の機能があります。 {id, order, content, done} :cmdこれapi/1/todo/resetで、データベースのtodoテーブルをクリアするために呼び出すことができます。 これが私の理解のコメント付きのコードです: function TodoService($resource) { var src = $resource('api/1/todo/:id:cmd', {id: "@id", cmd: "@cmd"}, //parameters default { ListTodos: { method: "GET", params: {} }, GetTodo: { method: "GET", params: { id: 0 } }, CreateTodo: { method: "POST", params: { content: "", …

18
AngularJSでアクティブなタブスタイルを設定する
私はこのようにAngularJSにルートを設定しています: $routeProvider .when('/dashboard', {templateUrl:'partials/dashboard', controller:widgetsController}) .when('/lab', {templateUrl:'partials/lab', controller:widgetsController}) タブとしてスタイル設定されたトップバーにいくつかのリンクがあります。現在のテンプレートまたはURLに応じて、「アクティブ」クラスをタブに追加するにはどうすればよいですか?

7
AngularJS:マルチパートフォームで単純なファイルアップロードを実装する方法?
AngularJSからnode.jsサーバーにシンプルなマルチパートフォームを投稿したいのですが、フォームには一方の部分にJSONオブジェクトが含まれ、もう一方の部分に画像が含まれている必要があります(現在、$ resourceを持つJSONオブジェクトのみを投稿しています)。 input type = "file"から始めるべきだと考えましたが、AngularJSがそれにバインドできないことがわかりました。 私が見つけることができるすべての例は、ドラッグアンドドロップ用のjQueryプラグインをラップするためのものです。1つのファイルを簡単にアップロードしたい。 私はAngularJSを初めて使用するので、独自のディレクティブを作成することにまったく抵抗があります。

12
ページ上の時計の総数を数える方法は?
JavaScriptで、ページ全体の角度のある時計の数を数える方法はありますか? 私たちはバタランを使用しますが、それが常に私たちのニーズに合うとは限りません。私たちのアプリケーションは大きく、自動化されたテストを使用して、監視数が増えすぎていないかどうかを確認したいと考えています。 コントローラーごとに時計を数えることも役立ちます。 編集:これが私の試みです。ng-scopeクラスのすべての時計をカウントします。 (function () { var elts = document.getElementsByClassName('ng-scope'); var watches = []; var visited_ids = {}; for (var i=0; i < elts.length; i++) { var scope = angular.element(elts[i]).scope(); if (scope.$id in visited_ids) continue; visited_ids[scope.$id] = true; watches.push.apply(watches, scope.$$watchers); } return watches.length; })();
144 angularjs 


8
HTML要素なしでng-repeatを使用する方法
ng-repeat(AngularJSで)を使用して、配列内のすべての要素をリストする必要があります。 複雑なのは、配列の各要素がテーブルの1行、2行、または3行に変換されることです。 場合、私は、有効なHTMLを作成することはできませんng-repeat要素で使用されて繰り返し要素のないタイプが間で許可されていないとして、<tbody>そして<tr>。 たとえば、でng-repeatを使用すると<span>、次のようになります。 <table> <tbody> <span> <tr>...</tr> </span> <span> <tr>...</tr> <tr>...</tr> <tr>...</tr> </span> <span> <tr>...</tr> <tr>...</tr> </span> </tbody> </table> これは無効なhtmlです。 しかし、私が生成する必要があるのは: <table> <tbody> <tr>...</tr> <tr>...</tr> <tr>...</tr> <tr>...</tr> <tr>...</tr> <tr>...</tr> </tbody> </table> 最初の行は最初の配列要素によって生成され、次の3行は2番目の配列要素によって生成され、5番目と6番目の行は最後の配列要素によって生成されています。 ng-repeatがバインドされているhtml要素がレンダリング中に「消える」ようにng-repeatを使用するにはどうすればよいですか? それとも別の解決策がありますか? 明確化:生成された構造は以下のようになります。各配列要素は、テーブルの1〜3行を生成できます。答えは、理想的には配列要素ごとに0-n行をサポートする必要があります。 <table> <tbody> <!-- array element 0 --> <tr> <td>One row item</td> </tr> <!-- array …
142 angularjs 

3
Angular.jsで他の人に注入できる「もの」は何ですか?
AngularのDependency Injectionを理解するのに少し苦労しています。だから私の質問は、コントローラ、ファクトリ、プロバイダなどの「タイプ」のどれを、同じ「タイプ」の他のインスタンスを含めて他の人に注入できるのか誰でも説明できますか? 私が実際に探しているのは、このテーブルにy / nが入ったものです。同じ行/列のセルの場合、これはある「タイプ」の値を同じ「タイプ」の別の「タイプ」に注入することを意味します +----------------+----------+------------+-----------+---------+--------+----------+---------+-------+ | Can we inject? | Constant | Controller | Directive | Factory | Filter | Provider | Service | Value | +----------------+----------+------------+-----------+---------+--------+----------+---------+-------+ | Constant | | | | | | | | | | Controller | | | | | | | | | …

4
AngularJS:promiseはどこで使用しますか?
Promiseを使用してFB Graph APIにアクセスするFacebookログインサービスの例をいくつか見ました。 例#1: this.api = function(item) { var deferred = $q.defer(); if (item) { facebook.FB.api('/' + item, function (result) { $rootScope.$apply(function () { if (angular.isUndefined(result.error)) { deferred.resolve(result); } else { deferred.reject(result.error); } }); }); } return deferred.promise; } そして"$scope.$digest() // Manual scope evaluation"、応答を得たときに使用したサービス 例2: angular.module('HomePageModule', []).factory('facebookConnect', function() { return …

7
HTML5モードでAngularJSアプリケーションをURL書き換えするようにIISを構成するにはどうすればよいですか?
私が持っているAngularJSシードプロジェクトを、私は追加しました $locationProvider.html5Mode(true).hashPrefix('!'); app.jsファイルに追加します。IIS 7を構成してすべてのリクエストを http://localhost/app/index.html これでうまくいきます。どうすればよいですか? 更新: IIS URL書き換えモジュールを見つけてダウンロードし、インストールしたところです。これにより、目標を簡単かつ明確に達成できると期待しています。 アップデート2: これは私が達成しようとしていることを要約していると思います(AngularJS開発者のドキュメントから取得): このモードを使用するには、サーバー側でURLを書き換える必要があります。基本的に、アプリケーションのエントリポイント(index.htmlなど)へのすべてのリンクを書き換える必要があります。 更新3: 私はまだこれに取り組んでおり、次のような特定のURLをリダイレクトする必要がない(書き換えるルールがある)必要があることに気付きました http://localhost/app/lib/angular/angular.js http://localhost/app/partials/partial1.html そのため、css、js、lib、またはpartialsディレクトリにあるものはすべてリダイレクトされません。それ以外はすべてapp / index.htmlにリダイレクトする必要があります 誰もがすべてのファイルにルールを追加する必要なしにこれを簡単に達成する方法を知っていますか? アップデート4: IIS URL書き換えモジュールで2つの受信ルールを定義しています。最初のルールは: 2番目のルールは次のとおりです。 これでlocalhost / app / view1に移動するとページが読み込まれますが、サポートファイル(css、js、lib、partialsディレクトリにあるファイル)もapp / index.htmlページに書き直されているため、すべてが来ています。使用するURLに関係なく、index.htmlページとして戻します。これは、これらのURLが2番目のルールによって処理されないようにするための最初のルールが機能していないことを意味していると思います。...誰でも?...私は孤独を感じる... :-(

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