如何设置单选按钮默认选中并在页面加载时运行该功能?

时间:2016-02-23 22:15:16

标签: javascript html angularjs

我有一个模态窗口,当我选择加载数据的单选按钮时,我有一个带有当前代码的单选按钮,如何为单选按钮设置默认值并在页面加载时加载toggleChange()方法?

main.html中

<div class="col-md-5">
                <input type="radio"
                    name="optionsRadios" id="unrated" ng-value="'assign'" checked="checked"
                    ng-model="nonPersistentProcess.showCriteria" ng-init="toggleChange()">
                    <strong>Show all available controls that are not aligned to this risk</strong>
            </div>

main.js

  $scope.toggleChange = function() {
                if ($scope.nonPersistentProcess.showCriteria === 'disassign') {
                    $scope.controlRiskGridOption = riskToControlGridDataService.getControlsInProcess();
                    $scope.controlRiskGridOption.dataSource = riskToControlGridDataService.getControlsInProcessGridDataSource($stateParams.processId, $scope.nonPersistentProcess.riskKey);
                } else if ($scope.nonPersistentProcess.showCriteria === 'assign') {
                    $scope.controlRiskGridOption = riskToControlGridDataService.getAllControls($scope);
                    $scope.controlRiskGridOption.dataSource = riskToControlGridDataService.getAllControlsGridDataSource($stateParams.processId, $scope.nonPersistentProcess.riskKey);
                }
                $scope.selectedFlagControlInProcess = true;
                $scope.selectedTypeProcess = new Date().getTime();
                $scope.controlInPrcsSelected = {};
                $scope.controlInPrcsNoAlignSelected = {};
                $scope.controlInPrcsSelectedArray = {};
                $scope.controlInPrcsNoAlignSelectedArray = {};
            };

4 个答案:

答案 0 :(得分:1)

使用JQuery,您可以使用Ready方法,然后使用prop设置要检查的广播:

$(document).ready(function(){
    //code
    toggleChange();
    $("#radio").prop("checked", true);
)}

答案 1 :(得分:1)

ng-init最适合初始化范围数据。

正如@Jerry所说,angular.element(document).ready方法是在页面加载时运行逻辑的最佳位置;为了避免与页面上可能发生的其他事件冲突,您可以添加$ timeout,将toggleChange的执行延迟到下一个摘要周期。它不是最佳的,但它应该让你去。

    angular.element(document).ready(function(){
        $timeout(function(){
            $scope.$root.toggleChange();
        },0)
    });

答案 2 :(得分:0)

设置

  $scope.nonPersistentProcess.showCriteria = 'assign';
在控制器中

并调用函数

  $scope.toggleChange();

位于控制器底部或在$ scope对象声明之后

答案 3 :(得分:0)

此问题已在过去的帖子中得到解答。

但这是我目前正在使用的那个。它工作正常

您的控制器,包括$ timeout

  

var $ scope.init = function(){            //你的代码        }

     

$超时($ scope.init)

还有这个

  

angular.element(document).ready(function(){

// your code here
     

});

(链接:How to execute angular controller function on page load?