如何使用AngularJS使文档准备好条件?

Posted

技术标签:

【中文标题】如何使用AngularJS使文档准备好条件?【英文标题】:How to make document ready conditional using AngularJS? 【发布时间】:2021-07-08 14:48:36 【问题描述】:

我使用 ASP.NET MVC 和 AngularJS 作为我的框架。我有一个向 MCV Action 发送请求并最终被转发查看的链接。此视图已注册 javascript 文件,该文件加载 angular.element(document).ready(function (e) 函数。基本上我试图在 angular.element(document).ready 中创建一个 if else 语句。基于 myparam=是的。我该怎么做?

链接-

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

AngularJS Javascript 文件 -

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);
            
        )
    );

动作-

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);
        

【问题讨论】:

真的不清楚您要在这里解决什么更高级别的问题。听起来像XY problem 您是在问如何仅在 url 具有特定值的情况下引导 Angular 应用程序? 我正在尝试在 angular.element(document).ready 中创建一个 if else 语句。基于 myparam=true。我该怎么做? charlietfl - 是的,非常相似。我需要获取从 URL 传递的值 myparam=true。接下来在 angular.element(document).read 函数中创建条件语句。 使用URLSearchParams() 【参考方案1】:

添加一个简单的 window.location.href 并检查 URL 中是否存在参数就可以了。有时简单更好!谢谢。

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);
                    
                )
            
        );

【讨论】:

以上是关于如何使用AngularJS使文档准备好条件?的主要内容,如果未能解决你的问题,请参考以下文章

Kendo UI Grid:如何使单元格在条件下只读

如何使用stormpath使angularjs调用nodejs api和auth

如何使 ng-bind-html 编译 angularjs 代码

使 Android 视频文件准备好通过 HTTP 播放

angularjs主要是做啥

如何使用 ng-repeat 使 bxSlider 在 AngularJS 中工作?