AngularJS 与 ASP.NET Updatepanel 部分更新

2023-11-22

我是 AngularJS 的新手,所以这可能是一个微不足道的问题。

我面临的问题是,只要有更新面板部分更新,AngularJS 绑定 {{Object.Field}} 就会恢复为未格式化状态。我知道更新面板正在用非格式化文本({{Object.Field}})替换 DOM,但我无法以角度重新评估更新面板注入的 HTML 片段。

到目前为止我尝试过的:

  • 从更新面板的 End_Request 获取控制器范围的句柄,并将更新函数包装在 $scope.apply() 内的控制器上;
  • 在同一位置以及控制器内部调用 $scope.compile,结果没有变化。
  • 尝试用指令替换,但我认为这不是我想要的。

我可以获取控制器内 DOM 的句柄并直接更改它,但我知道这不是推荐的方法,因此我在这里问这个问题。

如何让 Angular 重新评估由 asp.net 更新面板的部分更新替换/注入的 HTML 片段?


您需要在 PageRequestManager 的 End_Request 中再次编译模板。我使用了带有 id 的 div,这样我就可以在 End_Request 函数中引用感兴趣的元素。

JavaScript 代码:

var mod = angular.module("myApp", []);

mod.controller("MainController", function ($scope, $compile) {
    $scope.data = {};
    $scope.data.world = "world";

    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function (sender, args) {
        var elem = angular.element(document.getElementById("angularTemplate"));

        elem.replaceWith($compile(elem)($scope));
        $scope.$apply();
    });
});

ASPX代码:

<body ng-app="myApp" ng-controller="MainController">
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <div id="angularTemplate">
                    Hello, {{data.world}}
                </div>

                <asp:Button ID="btnUpdate" runat="server" Text="Update Me" />
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
    </form>
</body>

单击“更新我”按钮会将“Hello, world”保留在模板中。关键是还要在 End_Request 中调用 $scope.$apply() ,因为这在技术上是在 Angular 之外运行的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS 与 ASP.NET Updatepanel 部分更新 的相关文章

  • asp.net C# 将文件流转换为图像

    我有一个文件流 我试图将其转换为图像 我有以下代码 FileStream imageFile image file as FileStream 图像是保存图像信息的映射 请有人指导我下一步应该做什么 Image FromStream将获取一
  • 将 html 字符串转换为 ASP.Net 中的服务器控件

    我有一个问题 所以希望你们能帮忙 我在代码后面有一个像这样的字符串 string html
  • asp.net 中的 HTML 标签注入

    我的安全团队报告了以下代码的一个 html 标签注入安全问题 function ClosePopUp objBhID var pageName window location pathname var modalPopupBehavior
  • AngularJS:指令中的 element.show() 不起作用

    我有一个指令 参见 plunk http plnkr co edit GiityBz2oOrWxP8gjTgZ p preview 用样式包装 DIVdisplay none一秒钟后显示其内容 我尝试用 element show 和 ele
  • 将日期时间字符串转换为 Utc

    如何将日期时间字符串转换为 GMT 中的 utc 时间格式 var x 02 01 2017 10 00 var z DateTime ParseExact x ddd dd MMM yyyy HH mm ss GMT CultureInf
  • 使用 ui-router 将父状态默认为子状态

    我有这样的状态结构 state places url places controller PlacesController templateUrl views places html state places city url city t
  • 在 ASP.NET 中使用 HTTP 处理程序生成图像以在电子邮件中显示

    我正在生成一个条形码图像作为 HTTP 处理程序的响应 如下所示 public void ProcessRequest HttpContext context context Response Clear context Response
  • 空白 Asp.net MVC 模板

    有没有办法获得 VS2008 的空白 MVC 模板 就像 MVC 附带的唯一的那样 很高兴看到 MVC 的全部内容 但是当您想要创建自己的网站并且首先必须删除它们为您生成的所有垃圾时 它会变得烦人 就像我想使用我自己的身份验证东西 因为我了
  • 使用 $emit from 指令将事件发送到控制器

    我试图在选择一个项目时发送一个事件 从指令到控制器使用 emit 我有两个针对组织的更新功能 另一个针对人员的更新功能 我的指令应该指定应该发出哪个事件 这是我的更新功能 用于组织 scope updateOrgs function sel
  • 使用 momentjs 更改 Angular Material 中 md-datepicker 的格式

    Angular Material 引入了新的日期选择器组件here https material angularjs org HEAD demo material components datepicker 我希望该组件返回的日期采用以下格
  • 失败 - 下载 EPPlus.dll 制作的 Excel 文件时出现网络错误

    我尝试下载由EPPlus dll来自 asp net c Web 表单应用程序 但我失败了 网络错误 需要注意的是 上述错误仅发生在 chrome 中 在其他浏览器中可以成功完成该工作 顺便说一下 这个错误不会发生在我的本地主机上 它只发生
  • .Net Core dotnet run 没有运行最后修改的源代码

    我正在使用 Net Core 2 2 开发 Asp Net Mvc 项目 我无法从命令行 powershell 运行最后修改的源代码 我尝试手动调用dotnet clean and dotnet build before dotnet ru
  • 从生成的 Excel 文件生成 PDF 报告(EPPLUS 库)

    我正在使用 EPPLUS 生成 Excel 文件 到目前为止 一切顺利 现在我必须生成相同的报告 但采用 PDF 格式 有什么方法可以让我完成这个任务吗 最好 我想使用 Excel 文件本身 因为我用来提供 Excel 文件的数据集不完整
  • AngularJS - 选择单选按钮时触发

    我搜索并尝试了很多 ng xxxx 类型的选项 但找不到那个 我只想在选择单选按钮时调用控制器中的某些功能 所以它可能类似于以下 当然 下面的代码不起作用
  • 刷新页面时保留页面数据

    我是角度新手 我正在使用一项服务 该服务获取对象列表并将其显示在第一页上 然后根据单击的对象 我在下一页上设置选项卡标题 但是 当我刷新页面时 列表的范围丢失 并且选项卡标题引发异常 导致页面不显示信息 即使刷新第二页 是否有任何方法可以保
  • 如何在占位符中动态生成的标签之间创建换行符?

    这是文件后面代码中的以下代码Page Load event LinkButton linkButton new LinkButton linkButton ID LinkButtonDynamicInPlaceHolder1Id i lin
  • 停止 ASP.NET 按钮的页面重新加载

    NET 应用程序中 我插入了一个调用 Javascript 函数的按钮 OnClientClick事件 和 VB NET 函数 OnClick event
  • Kendo Angular 多选设置选定值

    我将 Kendo 多重选择与 Angular Kendo 指令和远程数据源一起使用 我试图在应用程序启动时设置所选项目 但没有成功 谁能帮帮我吗 请参阅此处的代码 JS Bin http jsbin com OkukInIc 1 edit
  • 使用signinmanager成功登录后,用户仍然显示为已注销?

    我已将 Asp Net 身份框架添加到从前端调用的 WebAPI 中 注册帐户后 并看到它在数据库中正确显示 我使用该用户的用户名和密码登录 结果成功 但根据登录管理器 用户未登录 我尝试使用 cookie 身份验证使用此示例 https
  • 单击 GridView 查找选定行

    我正在尝试获取 GridView 并从单击的行中获取数据 我已经尝试了下面的代码 当我单击该行时 我会返回选定的索引 但是当我查看 GridView 中的实际行时 它们显示为空 不知道我错过了什么 ASP 使我的网格

随机推荐

  • 操纵可变参数的标准方法?

    这是一个奇怪的问题 但是有没有一种标准方法来操纵 a 的内容va list在将其传递给另一个函数之前 例如 假设我有两个函数 sum and vsum int vsum int n va list ap int total 0 for in
  • 从后台任务或服务确定当前前台应用程序

    我希望有一个在后台运行的应用程序 它知道任何内置应用程序 消息 联系人等 何时运行 所以我的问题是 我应该如何在后台运行我的应用程序 我的后台应用程序如何知道当前在前台运行的应用程序是什么 如果有经验人士的回复 我们将不胜感激 关于 2 我
  • 如何从阵列列表中添加多个音轨

    我想为单个音轨添加多个音轨video与此类似的文件https codepen io eabangalore pen NZjrNd 他们正在使用自己的jsvideojs 我有要切换的音轨列表 var usersAudioTrackList h
  • 为什么提交和签出后文件夹会留在我的本地 git 工作目录中

    我创建了一个文件夹 其中包含本地工作 git 结构中的文件 我使用 git checkout b 创建了一个新分支并使用了 git add 和 git commit m 将这些文件添加到我的本地分支 但是 当我执行 git checkout
  • 我们可以使用 AWS Glue 将文件从一个 S3 文件夹复制到另一个 S3 文件夹吗?

    我需要将压缩文件从一个 AWS S3 文件夹复制到另一个文件夹 并希望将其作为计划的 AWS Glue 作业 我找不到这样一个简单任务的例子 如果您知道答案请帮忙 答案可能就在 AWS Lambda 或其他 AWS 工具中 非常感谢 您可以
  • 声明二维数组

    我有几项大学作业遇到了麻烦 确实 我只是对有关数组的一件事感到困惑 我需要声明一个三列 五行的数组 前两列是整数 第三列是字母等级 所以我对声明数据类型感到非常困惑 因为它们是不同的 这是我第一次使用数组 所以请原谅我的无知 这是我的数组应
  • 使用 VBA 在单元格内查找字符串

    我已经为此发疯了一天 到处搜索 可能是我想变得太可爱 所以我完全陷入困境 我正在尝试运行一个简单的 if then 如果一个单元格包含 我希望它做一件事 如果不是另一件事 由于我不明白的原因 我无法让它发挥作用 我显然从其他地方借鉴了一些想
  • 使用 url 元素内的 xhtml:link 验证 XML Sitemap urlset

    我正在尝试创建如下所示的站点地图 但收到此错误
  • 如何将 4 个字节组合成 32 位无符号整数?

    我正在尝试将 4 个字节转换为 32 位无符号整数 我想也许是这样的 UInt32 combined UInt32 map i lt lt 32 map i 1 lt lt 24 map i 2 lt lt 16 map i 3 lt lt
  • 使用 ElementTree getpath() 动态获取 Xpath

    我需要编写一个动态函数 通过动态构建元素的 XPath 来查找 ATOM xml 子树上的元素 为此 我写了这样的内容 tree etree parse xmlFileUrl e etree XPathEvaluator tree name
  • 在Python中解析日期时间..?

    我有一个系统 用Python开发 接受各种格式的日期时间作为字符串我必须parse他们 当前日期时间字符串格式是 Fri Sep 25 18 09 49 0500 2009 2008 06 29T00 42 18 000Z 2011 07
  • maven exec:java 运行jar内的类文件

    我将我的代码打包到 jar 中 罐子包装完好 jar tfv target test 1 0 SNAPSHOT jar com com codevalid com codevalid App class log4j xml META INF
  • 使用 SPM(Swift 包管理器)获取本地文件的 URL

    我正在尝试阅读 json文件放在我的单元测试中并在 Swift Package 中运行它 使用 Xcode 11 和 Swift 5 1 let path Bundle main url forResource filename withE
  • 如何禁用或更改 React-Leaflet v4 弹出关闭按钮上的 href?

    在react leaflet v4中 Popup组件有一个与关闭按钮关联的默认href 该按钮指向 close React 有没有办法修改这个 href 或禁用 href 重定向 它破坏了我的反应域 HashRouter 值得注意的是 Le
  • 页面加载时隐藏div

    我有 jquery 问题 请查看我的 jquery 代码 document ready function toggle container show h2 trigger toggle function this addClass acti
  • 将 TypeNameAssemblyFormat 与 PCL 结合使用时,Newtonsoft.Json 出现 MissingMethodException

    将 TypeNameAssemblyFormat 与 PCL 一起使用是否存在问题 除了使用此序列化设置之外 使用 Newtonsoft Json 的任何其他设置都没有问题 这是我的Json相关代码 var settings new Jso
  • Python 中使用 Paramiko 进行递归目录复制

    我是 Python 脚本新手 我需要将一些文件夹从本地计算机 Windows 复制到 Linux 服务器 截至目前 我正在通过打开 WinSCP 控制台来复制文件夹 我需要自动化这个过程 我使用 Paramiko 模块库在 Python 中
  • 将 google idToken 交换为本地 openId 令牌 c#

    我正在使用这个github项目https github com openiddict openiddict core这太棒了 但当用户使用外部身份提供商时 我对程序应该是什么或如何实现它们感到困惑 对于这个例子 我将使用谷歌 我有一个 An
  • 使用 jQuery 滑动切换一组表行

    我对 javaScript 和 jQuery 相当陌生 所以希望这将是一个快速修复 我需要显示一个包含可分为多个类别的数据的表格 并且我想实现一个隐藏 显示每个给定类别中的所有观察结果的幻灯片切换 下面的代码 理想情况下 应显示一个 4 列
  • AngularJS 与 ASP.NET Updatepanel 部分更新

    我是 AngularJS 的新手 所以这可能是一个微不足道的问题 我面临的问题是 只要有更新面板部分更新 AngularJS 绑定 Object Field 就会恢复为未格式化状态 我知道更新面板正在用非格式化文本 Object Field