[英]How to use AngularJS $rootScope?
I am passing three $rootScope
from process controller to Rating controller so based on the $rootScope
status i am enabling and disabling buttons. 我正在将三个$rootScope
从过程控制器传递到Rating控制器,因此基于$rootScope
状态,我正在启用和禁用按钮。 Edit and view is working good but on $rootScope === 'NewPrt'
, Once user answered all question i want to enable submit button on 'NewPrt'
. 编辑和查看工作正常,但在$rootScope === 'NewPrt'
,一旦用户回答了所有问题,我想在'NewPrt'
上启用提交按钮。
So far i tried below code.. 到目前为止,我尝试下面的代码。
HTML 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 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 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;
}
You can try like this instead of using $rootScope
您可以尝试这样,而不是使用$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>
When both conditions are true, enable the submit button: 当两个条件都成立时,启用提交按钮:
if ($rootScope ==='edit' || $rootScope ==='NewPrt') {
$scope.disableSubmitButton = false;
}
if you want to use $rootScope you need to inject $rootScope in every controller where you want to use config run any where 如果要使用$ rootScope,则需要在要使用config的每个控制器中注入$ rootScope,在任何位置运行
like this 像这样
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)
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.