[英]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 = {};
};
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對象聲明之后
這個問題在過去的帖子中已經回答了。
但這是我目前正在使用的那個。 而且效果很好
var $ scope.init = function(){//您的代碼}
$超時($ scope.init)
還有這個
angular.element(document).ready(function(){
// your code here
});
(鏈接: 如何在頁面加載時執行角度控制器功能? )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.