簡體   English   中英

如何設置單選按鈕默認選中並在頁面加載時運行功能?

[英]How to set radio button default checked and run the function on page load?

我有一個模式窗口,當我選擇單選按鈕加載數據時,我有一個帶有當前代碼的單選按鈕,如何設置單選按鈕的默認值並在頁面加載時加載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 = {};
            };

使用JQuery可以使用Ready方法,然后使用prop設置要檢查的單選:

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

ng-init最適合初始化作用域的數據。

正如@Jerry所說,angular.element(document).ready方法是在頁面加載時運行邏輯的最佳位置。 為了避免與其他事件發生沖突,您可以添加$ timeout來延遲toggleChange的執行到下一個摘要周期。 這不是最佳選擇,但它可以幫助您前進。

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

  $scope.nonPersistentProcess.showCriteria = 'assign';

在您的控制器中並調用該函數

  $scope.toggleChange();

在控制器底部或$ scope對象聲明之后

這個問題在過去的帖子中已經回答了。

但這是我目前正在使用的那個。 而且效果很好

您的控制器,包括$ timeout

var $ scope.init = function(){//您的代碼}

$超時($ scope.init)

還有這個

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

 // your code here 

});

(鏈接: 如何在頁面加載時執行角度控制器功能?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM