0

私は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) が変更されません。お知らせ下さい。ありがとうございました。

4

1 に答える 1