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

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


2
ディレクティブはAngularJSのng-repeatスコープでスコープを分離します
(他の場所でディレクティブを再利用できるように)分離スコープを持つディレクティブがありng-repeat、このディレクティブをで使用すると、機能しません。 このトピックに関するすべてのドキュメントとスタックオーバーフローの回答を読み、問題を理解しました。通常の問題をすべて回避できたと思います。 したがって、ng-repeatディレクティブによって作成されたスコープが原因でコードが失敗することを理解しています。私自身のディレクティブは、isolateスコープを作成し、親スコープ内のオブジェクトに双方向のデータバインディングを行います。私のディレクティブは、このバインドされた変数に新しいオブジェクト値を割り当てます。これは、私のディレクティブを使用しない場合ng-repeat(親変数が正しく更新される場合)に完全に機能します。ただし、ng-repeatでは、割り当てによってng-repeatスコープ内に新しい変数が作成され、親変数には変更が反映されません。これはすべて、私が読んだ内容に基づいて予想どおりです。 また、特定の要素に複数のディレクティブがある場合、1つのスコープのみが作成されることも読みました。そしてpriority、各ディレクティブにa を設定して、ディレクティブが適用される順序を定義できます。ディレクティブは優先度でソートされてから、それらのコンパイル関数が呼び出されます(http://docs.angularjs.org/guide/directiveで優先度という単語を検索してください)。 したがって、優先順位を使用してディレクティブが最初に実行され、最終的に分離スコープが作成されるようにし、ng-repeat実行時に親スコープからプロトタイプを継承するスコープを作成する代わりに分離スコープを再利用できることを望んでいました。ng-repeatドキュメントは、優先レベルでそのディレクティブの実行と述べています1000。1優先度が高いか低いかは不明です。1ディレクティブで優先度を使用しても違いはないので、試してみました2000。しかし、それは事態をさらに悪化させます。私の双方向のバインディングがなりundefined、私のディレクティブは何も表示しません。 私は自分の問題を示すためのフィドルを作成しました。priorityディレクティブの設定をコメントアウトしました。名前オブジェクトのリストと、名前オブジェクトのname-row姓名フィールドを表示するという名前のディレクティブがあります。表示された名前をクリックselectedすると、メインスコープに変数を設定して欲しい。名前の配列、selected変数はname-row双方向のデータバインディングを使用してディレクティブに渡されます。 メインスコープで関数を呼び出すことでこれを機能させる方法を知っています。また、selectedが別のオブジェクトの内部にあり、外部オブジェクトにバインドすると、問題が発生しないことも知っています。しかし、私は現時点ではそれらの解決策には興味がありません。 代わりに、私が持っている質問は次のとおりです。 どうやって防ぐか ng-repeat親スコープからプロトタイプ的に継承するスコープを作成せずに、ディレクティブの分離スコープを使用するにはですか? なぜ優先レベルなのか 2000ディレクティブのしないのですか? バタランを使用して、どのタイプのスコープが使用されているかを知ることは可能ですか?

4
AngularJSでスコープを分離せずにディレクティブからコントローラー関数を呼び出す
分離スコープを使用せずに、ディレクティブ内から親スコープの関数を呼び出す方法を見つけることができないようです。分離スコープを使用する場合、分離で "&"を使用して親スコープの関数にアクセスできることを知っていますが、必要がないときに分離スコープを使用すると影響があります。次のHTMLについて考えてみます。 <button ng-hide="hideButton()" confirm="Are you sure?" confirm-action="doIt()">Do It</button> この簡単な例では、JavaScriptの確認ダイアログを表示し、確認ダイアログで[OK]をクリックした場合にのみdoIt()を呼び出します。これは、分離されたスコープを使用して簡単です。ディレクティブは次のようになります。 .directive('confirm', function () { return { restrict: 'A', scope: { confirm: '@', confirmAction: '&' }, link: function (scope, element, attrs) { element.bind('click', function (e) { if (confirm(scope.confirm)) { scope.confirmAction(); } }); } }; }) しかし問題は、私が分離スコープを使用しているため、上の例のng-hideは親スコープに対して実行されず、分離スコープで実行されることです(ディレクティブで分離スコープを使用すると、その要素のすべてのディレクティブが分離スコープを使用します)。以下は、 ng-hideが機能しない上記の例のjsFiddleです。(このフィドルでは、入力ボックスに「yes」と入力すると、ボタンが非表示になることに注意してください。) 代わりに、分離されたスコープを使用しないこともできます。これは、このディレクティブのスコープを分離する必要がないため、実際にここで本当に必要なものです。私が持っている唯一の問題は、分離されたスコープに渡さない場合、親スコープのメソッドをどのように呼び出すのですか? これは、孤立スコープを使用していないng-hideのjsfiddleですが、もちろん ng-hideは正常に動作していますが、confirmAction()の呼び出しは機能せず、動作させる方法がわかりません。 注意してください、私が本当に探している答えは、分離されたスコープを使用せずに外部スコープの関数を呼び出す方法です。また、この確認のポイントは、外部スコープを呼び出す方法を理解し、それでも他のディレクティブを親スコープに対して機能させることができるためです。 …

2
AngularJSディレクティブから属性にアクセスする
私のAngularJSテンプレートには、次のようなカスタムHTML構文が含まれています。 <su-label tooltip="{{field.su_documentation}}">{{field.su_name}}</su-label> それを処理するディレクティブを作成しました: .directive('suLabel', function() { return { restrict: 'E', replace: true, transclude: true, scope: { title: '@tooltip' }, template: '<label><a href="#" rel="tooltip" title="{{title}}" data-placement="right" ng-transclude></a></label>', link: function(scope, element, attrs) { if (attrs.tooltip) { element.addClass('tooltip-title'); } }, } }) を実行するとGoogle ChromeのJavaScriptコンソールから属性が表示されても、attrs.tooltip常に返される式を除いて、すべてが正常に機能します。undefinedtooltipconsole.log(attrs) なにか提案を? 更新:Artemによってソリューションが提供されました。それはこれを行うことにありました: link: function(scope, element, attrs) { attrs.$observe('tooltip', …

7
jsfiddleでjsをデバッグする方法
私はこのjsfiddleで探しています:http://jsfiddle.net/carpasse/mcVfK/ それは問題ではありません罰金を動作しますが、私はjavascriptを介してデバッグする方法を知りたいです。デバッガーコマンドを使用しようとしましたが、[ソース]タブにありませんか?これをデバッグする方法はありますか? フィドルのコード: angular.module('app', ['appServices']) .config(['$routeProvider', function($routeProvider) { $routeProvider. when('/home', {templateUrl: 'home.html', controller: HomeCtrl}). when('/list', {templateUrl: 'list.html', controller: ListCtrl}). when('/detail/:itemId', {templateUrl: 'detail.html', controller: DetailCtrl}). when('/settings', {templateUrl: 'settings.html', controller: SettingsCtrl}). otherwise({redirectTo: '/home'}); }]);

3
カスタムフィルター機能を備えたAngularJS複数フィルター
複数のフィルターとカスタムフィルター関数でリストをフィルターしようとしています。 オリジナルの動作するjsfiddleの例はhttp://jsfiddle.net/ed9A2/1/ですが、今度は年齢のフィルター方法を変更したいと思います。 カスタムフィルターを追加して、年齢がmin_ageとmax_age(年齢の間)の2つの入力値に基づいてフィルター処理されるようにします。 ドキュメントを調べた後。私は同様の質問をしている人々とユーザーMark Rajcokの回答http://docs.angularjs.org/api/ng.filter:filter#comment-648569667が良さそうであり、動作しているはずであることがわかりました。しかし、私はコードにそれを適用することに問題を抱えています。これは、他の複数のフィルターを持っているためです。 私はAngularJSに非常に新しい:( 私の試してみましたが動作していないフィドルはこちらですhttp://jsfiddle.net/ed9A2/20/ 動作しないコードのコピーペーストはこちら 見る <div ng-app ng-controller="MainController"> <table class="fancyTable"> <tr> <th>Player id</th> <th>Player name</th> <th>Age</th> </tr> <tr> <td><input ng-model="player_id" /></td> <td><input ng-model="player_name" /></td> <td> Min Age:<input ng-model="min_age" /> Max Age:<input ng-model="max_age" /> </td> </tr> <tr ng-repeat="player in players | filter:{id: player_id, name:player_name, age:ageFilter}"> <td>{{player.id}}</td> <td>{{player.name}}</td> …

9
チャイ: 'should'構文で未定義をテストする方法
上で構築このチャイとangularjsアプリをテストするチュートリアル、私は「べき」スタイルを使用して、未定義値のテストを追加したいです。これは失敗します: it ('cannot play outside the board', function() { scope.play(10).should.be.undefined; }); エラー「TypeError:プロパティ 'should' of undefined」はありませんが、テストは「expect」スタイルでパスします: it ('cannot play outside the board', function() { chai.expect(scope.play(10)).to.be.undefined; }); 「should」でどのように機能させることができますか?

1
Angular $ q。はどのように機能しますか?
$q.whenAngularJSでどのように機能するかを誰かが私に説明できますか?私はどのように$http機能するかを分析しようとしていて、これを見つけました: var promise = $q.when(config); そして、これがChromeコンソールの設定オブジェクトです: Object {transformRequest: Array[1], transformResponse: Array[1], cache: Object, method: "GET", url: "/schedule/month_index.html"…} cache: Object headers: Object method: "GET" transformRequest: Array[1] transformResponse: Array[1] url: "/schedule/month_index.html" __proto__: Object 次は何が起こる?このオブジェクトはどのように解決または拒否されますか?
95 angularjs  deferred  q 


8
マークアップで角度スコープ変数を設定する
簡単な質問:スコープの値をhtmlに設定して、コントローラーで読み取るにはどうすればよいですか? var app = angular.module('app', []); app.controller('MyController', function($scope) { console.log($scope.myVar); }); <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app='app'> <div ng-controller="MyController" app-myVar="test"> {{myVar}} </div> </div> コードスニペットを実行するHide resultsスニペットを展開 JSFiddle:http ://jsfiddle.net/ncapito/YdQcX/

5
AngularJS-全ページをロードしてリダイレクトするにはどうすればよいですか?
ページ全体の再読み込みを行うリダイレクトを実行して、ページが読み込まれたときにWebサーバーからのCookieが更新されるようにしたい。window.location = "/#/Next"そして、window.location.href = "/#/Next"動作しない、彼らはサーバーに当たらない角度のルートを行います。 Angularコントローラー内で完全なサーバーリクエストを行う正しい方法は何ですか?

3
ngModel。$ modelValueとngModel。$ viewValueの違いは何ですか
次のckEditorディレクティブがあります。下部には、エディターでデータを設定する方法の例から見た2つのバリエーションがあります。 app.directive('ckEditor', [function () { return { require: '?ngModel', link: function ($scope, elm, attr, ngModel) { var ck = null; var config = attr.editorSize; if (config == 'wide') { ck = CKEDITOR.replace(elm[0], { customConfig: 'config-wide.js' }); } else { ck = CKEDITOR.replace(elm[0], { customConfig: 'config-narrow.js' }); } function updateModel() { …
94 angularjs 

8
AngularJS:フォームが無効になっているフィールドを特定する方法はありますか?
名前付きのフォームに属するng-submit関数から呼び出されるコントローラー内のAngularJSアプリケーションに次のコードがありますprofileForm。 $scope.updateProfile = function() { if($scope.profileForm.$invalid) { //error handling.. } //etc. }; この関数の内部で、フォーム全体が無効と呼ばれる原因となっているフィールドを特定する方法はありますか?

3
AngularJSで$リソースキャッシュを更新/無効化する方法
私は次のようにデフォルトの$ httpキャッシュ実装を使用する単純なUser $ resourceを持っています。 factory('User', function($resource){ return $resource(endpoint + '/user/current/:projectId', {}, {get: { cache: true, method: 'GET' } } ); }) これは非常にうまく機能します。つまり、私のサーバーはアプリケーションで1回だけ呼び出され、次に値がキャッシュからフェッチされます。 しかし、特定の操作の後でサーバーから値を更新する必要があります。それを行う簡単な方法はありますか? ありがとう。

2
AngularJSのng-repeatループ内でng-modelをバインドする
ng-repeatループ内のスコープの問題に対処しようとしています。かなりの数の質問を参照しましたが、コードを機能させることができませんでした。 コントローラーコード: function Ctrl($scope) { $scope.lines = [{text: 'res1'}, {text:'res2'}]; } 見る: <div ng-app> <div ng-controller="Ctrl"> <div ng-repeat="line in lines"> <div class="preview">{{text}}{{$index}}</div> </div> <div ng-repeat="line in lines"> <-- typing here should auto update it's preview above --> <input value="{{line.text}}" ng-model="text{{$index}}"/> <!-- many other fields here that will also affect the …

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