this
なしで、コントローラーでのみ使用できます$scope
か?
場合によってはもちろん、はい、知っています... しかし...
が必要な場合$emit
、$broadcast
およびスコープ内でのみ見つけることができるその他の角度機能はありますか? これで入手できますか、それとも他の方法で入手できますか?
this
なしで、コントローラーでのみ使用できます$scope
か?
場合によってはもちろん、はい、知っています... しかし...
が必要な場合$emit
、$broadcast
およびスコープ内でのみ見つけることができるその他の角度機能はありますか? これで入手できますか、それとも他の方法で入手できますか?
この形式でコントローラーを作成すると、次のようになります。
angular.module('myModule').controller('myController',['$scope',function($scope){
//controller code here
}]);
渡す関数は、基本的にコントローラーオブジェクトのコンストラクターです
したがって、次のようなコードを書くと:
angular.module('myModule').controller('myController',['$scope',function($scope){
this.myObject = { key : value};
}]);
あなたは基本的にオブジェクトmyObject
のプロパティを作成していますmyController
コントローラーは基本的に angular.js で使用され、ビュー (ディレクティブによって処理される) とサービス (ビジネス ロジックを処理する) の間の通信を容易にします。
上記のように、Angular が提供する依存性注入を使用して$scope
オブジェクトをコントローラーに挿入できるようにするには、
新しいスコープ オブジェクトを使用してコントローラーをインスタンス化するng-controller="myController"
と、コントローラー オブジェクトで使用するために作成されます。コントローラーのコンストラクター関数に引数として渡した$scope
オブジェクトには、新しく作成されたスコープがあります。
以下は、Angular ドキュメントからの抜粋です。
プロパティには、ビュー モデル (ビューによって表示されるモデル) が含まれます。すべての $scope プロパティは、Controller が登録されている DOM 内のポイントでテンプレートで使用できます。
したがって、基本的に $scope オブジェクトにアタッチするプロパティはすべて、DOM で操作できるようになります。
アタッチするプロパティthis
は、DOM では使用できません。例えば :
this is you angular configuration :
angular.module('myModule').controller('myController',['$scope',function($scope){
$scope.name = 'kiran'
this.message = 'hello world';
}]);
This is your html :
<p>{{name}}</p>
出力は次のようになります。
試した場合:<p>{{message}}</p>
代わりにエラーがスローされます。
スコープ オブジェクトのみが、現在のスコープで監視されているすべての変数のリストである $$watchers、$watch API、イベント処理用の $on API などのプロパティを含みます。
したがって、これを使用してこれらのプロパティを活用することはできません。これで問題が解決することを願っています。
私が知る限り、 $emit など、 $scope を使用する必要があり、これを使用できない特別なケースがいくつかあります。