ホームページ  >  記事  >  ウェブフロントエンド  >  AngularJS コントローラーは別のコントローラーから継承します

AngularJS コントローラーは別のコントローラーから継承します

WBOY
WBOYオリジナル
2016-05-16 09:00:202259ブラウズ

angularjs のコントローラーの継承では、ネストされたスコープが一般的に使用されます。デフォルトでは、現在のスコープでプロパティが見つからない場合は、親スコープで検索され、見つからない場合は、$rootscope が見つかるまで検索されます。

ただし、場合によっては、rootscope がコントローラーであるため、rootscope に多数のパブリック属性メソッドを書き込むことができなくなります。

たとえば、ブレッドクラム、検索バー、ツールバー、テーブルなどの要素を含む類似したページが複数ある場合、ブレッドクラム表などの要素をディレクティブ化すると考えると、必然的に同様の構成が多数存在します コントローラーからコンポーネントに渡す必要があり、データを処理するために多くのツールメソッドが生成されます このとき、各ページのコントローラーに同じコードを繰り返し記述するのは明らかに見苦しいので、継承が必要です。

stackoverflow で解決策を見つけました。angularjs はすでにこの状況を考慮して $controller を提供していることがわかりました。

var app = angular.module('angularjs-starter', []); 
app.controller('ParentCtrl ', function($scope) {
// I'm the sibling, but want to act as parent
});
app.controller('ChildCtrl', function($scope, $controller) {
$controller('ParentCtrl', {$scope: $scope}); //This works
});

上記は、別のコントローラーから継承する angularjs コントローラーについてエディターが紹介する関連知識です。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。