5

シナリオがあります。共有ボタンがあり、html タグにある metaCtrl というコンテナー コントローラーがあります。

また、内部コントローラー。

クリックすると model.share() 関数を呼び出す共有ボタンがあります。

コード:

app.controller('metaCtrl', function($scope){
$scope.model = {};
    $scope.model.share = function(){
        $location.path('/share').search({'share' : '1'});
    }
});

共有ページ自体のコントローラー:

app.controller('shareCtrl', function($scope)){
 $scope.layout.shareVisible = $location.path().share == 1 ? true : false;
    $scope.model.share = function(){
         $scope.layout.shareVisible = $scope.layout.shareVisible ? false : true;
         var shareUrlValue = $scope.layout.shareVisible ? 1 : null;

         $location.search('share', shareUrlValue);
    }
});

アイデアは、アプリケーション全体で同じ HTML パターンを使用することですが、(ユーザーが既にそこにいる場合) 共有ページの共有セクションを切り替えるだけであり、ユーザーが現在そこにいない場合は共有ビューに送信します。

問題は、sahre ページに移動してから別のページに戻った後、関数 share() が、metaCtrl ではなく、shareCtrl 内の関数を参照していることです。

4

1 に答える 1