简体   繁体   中英

How to make document ready conditional using AngularJS?

I'm using ASP.NET MVC and AngularJS as my framework. I've a link which send request to MCV Action and finally gets forwarded to view. This view has registered JavaScript File which loads angular.element(document).ready(function (e){} function. Basically I'm trying to create a if else statement inside angular.element(document).ready. based on myparam=true. How can I do it?

Link -

"<h7>" + "" + "<a target=\"_blank\" href='/Submission/EditSubmissionFile?id=" + SubmissionID + "&myparam=true" +"'>" + "Add Attachment" + "</a><br></h7>" +

AngularJS Javascript File -

mainApp.controller('editSubmissionFileController', ['$scope', '$location', '$http', 'viewDataService', 'utilityService', '$window', 'constants', '$timeout', 'constants', 'adComplianceUtility', 'submissionRuleService',
    function ($scope, $location, $http, viewDataService, utilityService, $window, constants, $timeout, constants, adComplianceUtility, submissionRuleService) {
        
        angular.element(document).ready(function (e) {
        
        // How to make this conditional based on parameter passed from Action or html link? 

        $scope.$broadcast('ShowFileUpload', {
            SubmissionID: $scope.model.data.SubmissionID,
            Show: true,
            Callback: function (data) {
                $scope.onFileUploadSuccessful(data);
            }
        })
    });
}

Action -

public ActionResult EditSubmissionFile(int id)
        {
            // We can only see what we are allowed
            UserContext.TestSubmissionExists(id);
            UserContext.TestSubmissionAccess(id, AccessRightEnum.ViewSubmissions);

            var model = _submissionSvc.GetSubmissionViewModel(id);

            return View("EditSubmissionFile", model);
        }

Adding a simple window.location.href and check if parameter exists in URL does the job. Sometimes simple is better. Thank you.

angular.element(document).ready(function (e) {
            // Check if URL contains a parameter value to restrict default pageload function.
            if (window.location.href.indexOf("myparam=true") > -1)
            {
                $scope.$broadcast('ShowFileUpload', {
                    SubmissionID: $scope.model.data.SubmissionID,
                    Show: true,
                    Callback: function (data) {
                        $scope.onFileUploadSuccessful(data);
                    }
                })
            }
        });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM