2016-05-11 32 views
0

下面是我的代碼片段,我有是通過值從ngDialog到另一個控制器參數

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

問題---我不能錯過的「有效」範圍的值設置爲控制器RightsCtrl。

範圍:$ scope僅將值傳遞給作爲插值{{valid}}提到的html模板。

如何將值'valid'作爲參數傳遞給RightsCtrl作爲$ state.params.valid?

任何幫助,將不勝感激

我在app.js的狀態爲

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

    }) 
+0

你爲什麼做出NG-對話框一個獨立的國家?我已經成功地使用了ng-dialog而沒有做出狀態並仍然傳遞參數。我能夠訪問對話框控制器中的$ scope.valid。 –

+0

請您詳細說明 – Subhajit

+0

我的意思是當您在對話框和父控制器之間共享$ scope時,所有父控制器的$ scope變量都可以在對話框中以相同方式訪問 –

回答

0

傳遞參數的查詢參數,以這種狀態或維持rootScope的變量。

$rootScope.isValid = false; 

相應地在您的ngDialog控制器中更改此值isValid。

由於$rootScope在所有控制器中都可用,所以您應該可以使用它。

編輯:我看到你有一個路徑參數:在你的狀態有效。當您從模態轉換到狀態時,您應該將有效的valid傳遞給該狀態。

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

您能否給出答案的片段 – Subhajit

+0

更新了我的回答更多的信息。使用$ rootScope傳遞數據的 –

+0

不建議使用,因爲它會填充名稱空間。你可以在這裏閱讀更多關於它的信息: - https://www.quora.com/Is-it-preferable-to-use-rootscope-in​​-AngularJS-to-pass-data-from-one-controller-to-another –

0

檢查這一點 - 你需要傳遞變量的數據屬性

$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); 


    }] 
    }); 
相關問題