2015-03-24 6 views
1

Я прохожу три $rootScope от контроллера процесса до контроллера рейтинга, поэтому на основе состояния $rootScope я включаю и выключаю кнопки. Редактирование и просмотр работают хорошо, но на $rootScope === 'NewPrt', как только пользователь ответил на все вопросы, я хочу включить кнопку отправки на 'NewPrt'.

До сих пор я пытался ниже код ..

HTML

<button type="submit" class="btn btn-default" ng-disabled="disabledDraft" ng-click="savePRTDraft()" ng-show="showSaveDraftBtn">Save 
     as Draft</button> 
    <button type="submit" class="btn btn-primary" 
     ng-disabled="disableSubmitButton" ng-click="submitClicked()">Submit</button> 

ProcessCtrl.js

$scope.gotoQstnPage = function(isNew) { 
     var qrtUrl = "/createRtgQstnAir/"+$scope.processDTO.processKey + "/"+isNew; 
     $rootScope.status = 'NewPrt'; 
     $location.path(qrtUrl); 
    } 

$scope.editProcessRating = function(prcsSessionKey) { 
      var prtUrl = "/getProcessRating/"+prcsSessionKey; 
      $rootScope.status = 'edit'; 
      $location.path(prtUrl); 

     } 

     $scope.viewProcessRating = function(prcsSessionKey) { 
      var prtUrl = "/getProcessRating/"+prcsSessionKey; 
      $rootScope.status = 'view'; 
      $location.path(prtUrl); 
     } 

RatingCtrl.js

if(j > $scope.questionnaire.length){ 
       if($rootScope.status ==='edit') { 
       $scope.disableSubmitButton = false; 
       $scope.disabledDraft = false; 
       $scope.showBusDecDropDown = true; 
       } 

$scope.disabledDraft = function(){ 
     if($rootScope.status === 'view') { 
      return true; 
     } 
     else { 
      return false; 
     } 
     } 
     if ($rootScope.status === "NewPrt") { 
     $scope.disabledDraft = false; 
     } 

ответ

0

, если вы хотите использовать $ rootScope вам нужно ввести $ rootScope в каждом контроллере, где вы хотите использовать конфигурационный работать где-либо

как этот

var app = angular.module('app'); 
app.config(function($rootScope){ 
    $rootScope.name = "Hello World" 
}); 

app.controller('home',function($scope,$rootScope){ 
$scope.name = $rootScope.name; 
alert($scope.name) 
}) 
+0

$ rootScope вводится во весь контроллер на основе моего кода, как я могу включить disableSubmitButton, когда $ rootScope === 'NewPrt' и ответы на вопросы. – aftab

+0

$ rootScope является объектом и необходимо назначить свойство в $ rooScope как $ rootScope.value = 'NewPrt' тогда он легко позволяет установить состояние как если ($ rootScope.value === 'NewPrt') { // enable submit // его легко } – Ahmer

+0

, пожалуйста, проверьте мой вопрос, у меня было присвоено значение $ rootScope.status === 'NewPrt' – aftab

1

Вы можете попробовать, как это вместо того, чтобы использовать $rootScope

var app = angular.module('myApp', []); 
 
app.controller('Controller', function ($scope) { 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app='myApp' ng-controller="Controller"> 
 
    <form name="myForm"> 
 
     <input name="myText" type="text" ng-model="mytext" required /> 
 
     <button ng-disabled="myForm.$invalid">Save</button> 
 
    </form> 
 
</div>

1

Когда оба условия действительны, включите кнопку отправки:

if ($rootScope ==='edit' || $rootScope ==='NewPrt') { 
    $scope.disableSubmitButton = false; 
} 
Смежные вопросы