angularJSでプロパティ注入を使用できますか?
angularJSコントローラの特性注入
シナリオは、私は、これは
app
.module('myapp')
.config(function($stateProvider) {
$stateProvider.state('the-state', {
url: '/the/url',
templateUrl: 'view.html',
controller: 'ctrl',
controllerAs: 'vm',
resolve: {
'boolFlag': function(service){return service.getBoolean();}
}
});
})
.service('service', function(){
this.getBoolean = function() {return ...};
})
.controller('ctrl', function(boolFlag) {
this.boolFlag = boolFlag;
this.execute = function(){...};
});
<div ng-show="vm.boolFalg">
simple dynamic content
</div>
<button type="button" ng-click="vm.execute()">Click Me</button>
に動作します知っている。しかし、それは漏れやすい感じ。 boolFlag`はコンテンツを表示/非表示するためにのみビュー内で使用されます。私はコントローラを解決し、コントローラインスタンスのboolFlagプロパティを設定する方法はありますか?私はプロバイダや工場が行く方法だと思っていますが、私はそれを理解しようとしているサークルで回っています。
私はそれは私もこのことについて間違った道を進んですることができ
app
.module('myapp')
.config(function($stateProvider) {
$stateProvider.state('the-state', {
url: '/the/url',
templateUrl: 'view.html',
controller: 'ctrl',
controllerAs: 'vm',
});
})
.provider('ctrlProvider', function(ctrlProvider, service) {
var ctrl = ctrlProvider.$get/invoke/build/create();
ctrl.boolFlag = service.getBoolean();
return ctrl;
})
.service('service', function(){
this.getBoolean = function() {return ...};
})
.controller('ctrl', function() {
this.execute = function(){...};
});
ようになります想像します。多くのコントローラにはboolFlagプロパティが必要です。たぶん$parentScope
の一部になるはずですか?しかし、私はそれをコード化する方法を知らない。
更新 私はこの最後の夜について考えていました。 boolFlagは、コントローラにまったく関連付ける必要はありません。それはスコープの一部である必要があります。 $scope.boolFlag = service.getBoolean();
質問があれば、コントローラなしで$ scopeをどのように設定できますか?
ありがとうございます。私の最終的な目標は、ビューにのみ必要なので、コントローラに値を注入しないようにすることでした。これについてさらに考えてみると、スコープ内にboolFlagだけが必要です。コントローラーではありません。では、明示的にコントローラーを経由せずにスコープにデータを挿入するにはどうすればよいですか? –