2016-11-10 9 views
0

Ng-includeは私をナットとして運転しています。 だから私は、火災のcreateUser一度場合、私は、次のような機能ng-include部分的な部分のみを一度だけ受け取ります

$scope.createUnit = function (link) { 
     $rootScope.Action = 0; 
     $rootScope.Id = 0; 

     $scope.currentPartial = window.location.origin + link; 
     setTimeout(SubViewService.showSubView(), 500); 
    }; 

$scope.createUser = function (link) { 
     //////console.log(link); 
     $scope.currentPartial = window.location.origin + link; 
     setTimeout(SubViewService.showSubView(), 500); 
    }; 

を持って、その後、私はcreateUnitのserveral回実行マスターページ

<div id="subViewPartial"> <ng-include class="col-md-8 col-md-offset-2" src="currentPartial"> </ng-include> </div>

とangularjs中に、このHTMLコードを持っています私はcreateUserを呼び出していなくても、サブビューはcreateUserとcreateUnitの間で回転します。ここ

)も

BAapp.service('SubViewService', function() { 
this.showSubView = function() { 
    var subViewContent = '#subViewPartial'; 

    $.subview({ 
     content: subViewContent, 
     onShow: function() { 
     }, 
     onClose: function() { 
      $.hideSubview(); 
     }, 
     onHide: function() { 
     } 
    }); 
} 

} SubviewServiceあります。

私はこの問題を説明することが明確であることを願っています。何が起こっているか考えてみませんか?

+0

$ .subview()は何をしますか?それはjQueryのプラグインか何かのようです。また、このコードがDOMにどのように追加されるかに関するいくつかの文脈を提供してください。つまり、$ scope.createUnit ...コード部分は何ですか?コンポーネントですか?コントローラー?もしそうなら、そのコンポーネント/コントローラはどのようにページに追加されますか? – Robba

+0

こんにちはRobba、はいサブビューはjqueryプラグインです。 $ scope.CreateUnitと$ scope.CreateUserは異なるコントローラの一部であり、結果としてそれらが呼び出された場合、 '$ scope.currentPartial = window.location.origin + link;'一度開いたパーシャルを介して回転します。 BTW。 $ .subview()はアニメーション形式でdivコンテンツを表示するだけです。 – user1961008

答えて

0

createUnit()createUser()関数が呼び出される場所をよく見てください。たとえば、console.debug()ステートメントまたはそのメソッドのdebuggerステートメントを設定します。

あなたはそれらが別々のコントローラの一部であると言いますが、これはコントローラが初期化中に呼び出されることを意味しますか?

このような場合、あなたは(誤って)おそらくng-includeng-ifまたはng-switch構造の、あなたが考えているよりも多くのcreateUser()を呼び出してコントローラを作成おそらくあります。

+0

Robba、デバッガでは、createUserとcreateUnitの両方の関数が呼び出し時に起動されます。しかし、私が気づいたのは、パーシャルビューコントローラ(MVC .NET)はパーシャルが初めてロードされたときだけ起動するということです。 ng-includeが部分ビューをメモリに格納しているかのようです。 – user1961008

+0

MVCが何をしているのかよく分かっていませんが、MVCを使ってオンザフライでAngularビューを生成していると仮定していますが、Angularは$ templateCacheサービス。あなたの問題は、createUserが複数回呼び出されているようです。 – Robba

+0

はいRobba、私のすべてのビューは、MVCコントローラの特定のアクション結果にリンクされています。問題は、複数の部分ビュー(ng-includeを通して)を開くと、キャッシュ内のビュー間で回転することです。ステップ1)createUnit => create user partialをロードします。ステップ2)createUnit => Create User Partialをロードします(ここで問題があります)。 createUnit => create Userパーシャルがロードされています。あなたは問題を見てほしい。 $ templateCacheサービスを空にする方法はありますか? – user1961008

関連する問題