2016-05-11 9 views
0

私は「有効」はRightsCtrlをコントローラに値をスコープ渡すことができませんでした---私が午前パス値

$scope.openrights = function (userid) { 
    $scope.valid = userid; 
    ngDialog.open({ 
    template: 'views/rightsassignment.html', 
    controller: 'RightsCtrl', 
    className: 'ngdialog-theme-default ngdialog-theme-custom', 
    scope: $scope 
    }); 
}; 

問題がある私のコードスニペットです。

スコープ:$ scopeは、内挿値{{valid}}として記述されたhtmlテンプレートにのみ値を渡します。

パラメータとして 'valid'をRightsCtrlに$ state.params.validとして渡す方法はありますか?

任意のヘルプは

.state('companyadmin.rightsassignment', { 
    url: '/rightsassignment/:valid', 
    templateUrl: 'views/rightsassignment.html', 
    controller: 'RightsCtrl', 
    title: 'Welcome Company Admin' 

    }) 
+0

で変数を渡す必要がありますか?私は、状態を作成せずにパラメータを渡すことなく正常にng-dialogを使用しました。私はダイアログコントローラの中で$ scope.validにアクセスできました。 –

+0

詳細を教えてください – Subhajit

+0

ダイアログボックスと親コントローラの間に$ scopeを共有すると、すべての親コントローラの$スコープ変数に同じ方法でダイアログが表示されます。 –

答えて

0

がその状態にクエリのparamとしてパラメータを渡したりrootScopeで変数を維持するように私はapp.jsでの状態を持っている

をいただければ幸いです。

$rootScope.isValid = false; 

ngDialogコントローラでこの値isValidを適宜変更してください。

$rootScopeはすべてのコントローラで使用できるため、使用することができます。

編集:あなたのパスパラメータがあります:あなたの状態で有効です。モーダルから状態に移行するときは、その状態に有効なvalidを渡す必要があります。

$state.go("companyadmin.rightsassignment", { "valid": true } 
+0

答えのスニペットを教えてください。 – Subhajit

+0

より多くの情報で答えてください。 –

+0

$ rootScopeを使用してデータを渡すことは推奨されていません。あなたはそれについてもっと読むことができます: - https://www.quora.com/Is-it-preferable-to-use-rootscope-in​​-AngularJS-to-pass-data-from-one-controller-to-other –

0

チェックこの - あなたは、なぜあなたはNG-対話のための別々の状態を作ったデータプロパティ

$scope.valid = userid; 
ngDialog.open({ template: 'templateId', 
className: 'ngdialog-theme-default ngdialog-theme-custom', 
data: $scope.valid, 
controller: ['$scope', function($scope) { 

     // controller logic 

       alert($scope.valid); 


    }] 
    });