私はAngularが初めてで、簡単なアプリを作成しようとしています。次のように、オンデマンドで対応するディレクティブを切り替えるために ngSwitch を使用する際に問題があります。
HTML マークアップ:
メインの html ファイル: ディレクティブワン:
.directive('directiveOne',function(){
return {
restrict:"AE",
replace:true,
template:"<div>this is directive one</div>",
controller:"Dir1Controller",
}
})
.directive('directiveTwo',function(){
return {
restrict:"AE",
template:"<div>this is directive 2</div>,
controller:"Dir2Controller"
}
})
コントローラー間でデータを共有するサービス。
.factory('ShareDataFct',function($rootScope){
var srv={};
srv.setValue=function(value){
this.srv.var = value;
$rootScope.$broadcast('varChanged');
}
return srv;
})
最後に、ディレクティブ用の 3 つのコントローラーです。
.controller('MainController',function($scope,ShareDataFct){
$scope.$watch('varChanged',function(){
$scope.myvar=ShareDataFct.var;
})
})
.controller('Dir1Controller',function($scope){
//nothing to do here yet
})
.controller('Dir2Controller',function($scope){
//nothing to do here yet
})
次に、ShareDataFct var を変更しようとしましたが、myvar の変更に従ってディレクティブを表示するようにビュー (ng-switch) が変更されません。お知らせ下さい。ありがとうございました。