在 DOM 元素上创建角度范围

2024-02-11

我需要创建一个新的角度范围并将其附加到 DOM 元素。我正在修改第三方控件,因此我无法选择仅使用指令。

我需要做类似的事情:

... = thirdPartyCallbackfunction(domElement){
        var myNewScope = $scope.$new(true);
        myNewScope.title = 'Hello';
        domElement.scope = myNewScope; //???
}

另外,我尝试添加ng-scope手动到 DOM 元素,但 ng-inspector 向我显示它没有创建新的子作用域。

$(domElement).scope();

在尝试时给我根范围。

The docs https://docs.angularjs.org/api/ng/type/%24rootScope.Scope#%24new也不是很有帮助。


您应该使用 $compile 服务。

HTML:

<div ng-app="myApp" ng-controller="myCtrl">
  <p> Top scope: {{number}}</p>
  <p> Top scope: {{myProp}}</p> <!-- Undefined in the top-level scope -->
  <div id = "child">
    <p> New scope: {{myProp}}</p>
  </div>
</div>

控制器:

angular.module("myApp", []).controller("myCtrl", ["$scope", "$compile", function($scope, $compile){
  $scope.number = 35;
  var myFunc = function(){
    var innerElem = angular.element(document.querySelector("#child"));
    var innerScope = $scope.$new();
    innerScope.myProp = 55;
    var compileFn = $compile(innerElem);
    compileFn(innerScope);
  }
  myFunc();
}]);

$compile用于评估 HTML 片段或 DOM 元素(包装在 jqLit​​e 对象中)。例如,您可以使用一些带有内联绑定的 html 模板来代替 DOM 元素:var content = "<ul><li ng-repeat='city in cities'>{{city}}</li></ul>" var list = angular.element(content); //create jqLite object from the template above;下一步是使用$compile服务对象,它是一个返回另一个函数的函数,该函数随后将用于生成内容。var compileFn = $compile(list);

一旦有了编译函数,就可以调用它,传递作用域对象作为即将进行的评估的上下文,基本上将元素与作用域链接起来。compileFn(scope);现在,模板中包含的绑定/表达式将使用您传递的范围进行评估并更新 jqLit​​e 对象(list),但是不会有返回值,所以在这种情况下你必须手动添加更新的list对象到 DOM。希望这能让服务澄清一点。

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

在 DOM 元素上创建角度范围 的相关文章

  • jQuery .val() 返回单选按钮的未定义

    我正在尝试获取 jQuery 中选中的单选按钮值 但它返回的值是 未定义 我搜索了这个问题的解决方案 但对我来说没有任何作用 我的 HTML 代码
  • ElectronJS ReferenceError:导航器未定义

    我正在尝试在电子上制作自定义标题栏 但是当我启动我的应用程序时 我遇到了 ReferenceError 导航器未定义 问题 请帮忙 这是我的 main js 中的代码片段 My Codes https i stack imgur com c
  • 如何使用 jQuery 向表中添加新行,并为其分配递增的 id

    我有一个现有的 HTML 表格 它是用户输入 GPS 点的表单的一部分 用户还可以选择上传 GPS 数据点 我想要一个用户可以按下的按钮 其中一些 Javascript 会向表中添加一个或多个新行 但新行必须继续增加表中使用的名称和 id
  • KeyboardEvent.keyCode 已弃用。这在实践中意味着什么?

    根据 MDN 我们绝对应该not正在使用 keyCode财产 它已被弃用 https developer mozilla org en US docs Web API KeyboardEvent keyCode https develope
  • 用数组反向查找对象

    假设我有一个这样的对象 resourceMap a 0 1 2 3 4 5 6 7 8 9 10 b 11 12 c 21 23 d 54 55 56 57 510 确定是否的最佳方法是什么resourceId 21将会 c 我们不知道钥匙
  • jQuery 选择器:为什么 $("#id").find("p") 比 $("#id p") 更快

    该页面的作者 http 24ways org 2011 your jquery now with less suck http 24ways org 2011 your jquery now with less suck断言 jQuery
  • Flux + React.js - 操作中的回调是好还是坏?

    让我解释一下我最近遇到的问题 我有 React js Flux 驱动的应用程序 有一个列表显示文章数量 注意 应用程序中有多个不同的列表 和文章详情查看在里面 但每个列表只有一个 API 端点 它返回文章数组 为了显示我需要的详细信息fin
  • 将杂散文本包裹在 div 中

    如何选择 任何没有包含标签的内容 来在 jQuery 中添加包装器 前任 div class post div class whatever This should remain untouched div I want to wrap t
  • 是否可以使用打字稿映射类型来创建接口的非函数属性类型?

    所以我正在研究 Typescript 的映射类型 是否可以创建一个接口来包装另一种类型 从而从原始类型中删除函数 例如 interface Person name string age number speak void type Data
  • 如何使 jQuery 向上动画

    我有一些 jquery 运行得相当好 但是当我将鼠标悬停在有问题的元素上时 底部向下扩展 这并不意外 但不是所需的效果 我希望元素的底部保持静止 而元素的顶部向上扩展 如果您想查看我目前拥有的内容 您可以导航至http demo ivann
  • 从多维无穷大数组中删除数组元素

    我想删除一个特定元素 例如 我想删除元素id 76在下面的数组中 而且 数组可以无限地组合在一起 这里的问题是我无法刷新页面 因为我使用 Vue js 进行即时操作 如果我能做到这一点 我的下一个问题可能是如何在我现在想要的地方添加一个元素
  • 加载另一个 JS 脚本后加载

    这是我的代码 very big js file lots of html stuff 问题是 这些是异步加载的 有没有办法等待第二个脚本直到第一个脚本加载 如果您使用 jQuery 有一个非常简单的方法可以通过获取脚本 https api
  • ng-model 和值组合不适用于输入文本框

    我有两个输入文本框 我需要组合在两个文本框中输入的值并将其显示在第三个文本框中 如果我只使用value在第三个文本框中 Box 1
  • 需要js、d3 和 nvd3 集成

    我面临整合的问题要求 questions tagged requirejs with d3 questions tagged d3 and nvd3 questions tagged nvd3 我找到了一个使用 require 的简单解决方
  • 替换两个引号之间的字符串

    我想转动一根绳子str hello my name is michael what s your s into hello my name is span class name michael span 我怎样才能在 JavaScript
  • 在javascript中动态生成行?

    我是 javascript 新手 我想在按下 Tab 时动态生成行 并希望获取在动态生成的行中输入的值 以便我可以在 servlet 代码中使用这些值 这是我的html
  • Fancybox 画廊组

    我正在使用 fancyboxhttp fancyapps com fancybox http fancyapps com fancybox 我的问题是 我可以将不同的资源组合在一起吗 我的意思是同一画廊 或 组 中带有内嵌或视频的图像 如果
  • 当选择下拉列表中的某些值时,取消选中复选框

    当我从下拉列表中选择某个值或用户未从下拉列表中选择任何值时 我需要取消选中复选框 我现在正在使用 Jquery 这是我现在使用的代码 但它不起作用 Script
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460
  • 我可以使用 jQuery 动态创建文件(及其内容)吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这是我的 HTML 代码 ul li

随机推荐

  • 如何在 python 2.x 和 3.x 中直接打印到文本文件?

    而不是使用write Python 2 和 3 中写入文本文件的其他方法是什么 file open filename txt w file write some text 您可以使用print function 未来进口 http docs
  • IntelliJ 的 WindowBuilder 等效项? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Eclipse 有一个名为 WindowBuilder 的插件 IntelliJ 有等效的吗 IntelliJ 有它自己的 GUI 构建器
  • 如何使用Graph API获取用户的好友总数[JavaScript]

    在对 Facebook 的 Graph API v2 8 做了一些研究之后 我终于明白了如何使用JavaScript 我想要具体做的是 在用户登录我的应用程序后 他们会单击一个按钮来获取其好友总数 这是我尝试用来完成此操作的代码 HTML
  • 如何使用 DKIM 签署 Javamail

    有没有一个库或一种方法可以在没有外部库的情况下做到这一点 我使用 apache james 作为我的邮件服务器 目前发送电子邮件如下 public void sendMessage String to String subject Stri
  • Python OpenCVsolvePnP转换为欧拉角

    我正在像这样使用solvePnP import cv2 import numpy as np Read Image im cv2 imread headPose jpg size im shape 2D image points If yo
  • Android Studio 中的混淆

    有没有什么混淆工具可以使用安卓工作室 IntelliGuard 插件是宣布支持 http plugins jetbrains com plugin 4511 pr 由 Studio 提供 但由于缺少 AntSupport 插件 它实际上不起
  • HostingEnvironment 类和 HttpRuntime 类有什么区别?

    正如你在这里看到的ASP NET 应用程序生命周期 http msdn microsoft com en us library ms178473 aspx 有两张图片 第一个在 AppDomain 中创建 HostingEnvironmen
  • 在 JavaFx 中重新启动应用程序

    我想关闭然后重新启动我正在制作的已经运行的应用程序 自动 通过单击按钮或类似的东西 我想这样做是为了以其他语言重新启动应用程序 我是对 JavaFx 和 Java 不太熟悉 请问您能给我解决这个问题吗 这个问题缺乏细节 您确实提到了 Jav
  • 使用 Spring Boot 设置 DynamoDB

    我正在尝试使用 SpringBoot 设置本地 DynamoDB 实例 我正在关注this https www baeldung com spring data dynamodb但使用 Gradle 当我尝试运行我的应用程序时 出现以下异常
  • 使用 LINQ 将项目推入堆栈

    我如何以编程方式将字符串数组推入通用堆栈 字符串数组 string array new string Liza Ana Sandra Diya 堆栈设置 public class stack
  • 获取 cp 无法创建常规文件 openssl 中没有这样的文件或目录

    尝试编译 openssl 代码时出现以下错误 在 make install 步骤中出现以下错误 如果有人解决了这个问题 请告诉我 谷歌搜索有链接 但指向一个未解决的问题 making install in crypto make 1 Ent
  • WCF 服务会公开属性吗?

    在实现 WCF 服务所需的接口中 我使用以下语句声明主类 ServiceContract 属性和任何公开的方法 OperationContract 我如何公开公共财产 谢谢 自从get属性的一部分是一种方法 这在技术上是可行的 但是 正如前
  • 如何通过外部 adb 命令判断 Android 活动是否已完成?

    在我们的测试中 我想使用脚本来运行一些 Android 活动 我可以使用 adb shell start Activity 命令来启动这些活动 有没有办法使用 adb 命令来判断活动何时完成 在发出下一个 adb start Activit
  • Weka 仅将数字更改为名义

    我有一个 CSV 文件 正在导入 Weka 所有变量均以数字形式导入 我需要将其中 3 个更改为名义值 然而 当我在其上放置数字滤波器时 所有变量都会发生变化 我只想改3 1 有没有办法通过过滤器改变一些 2 或者您可以在导入时设置它 如果
  • Android Studio 2.3 sdk 管理器选项卡呈灰色

    Android Studio 2 3 gt 配置 gt SDK 管理器 这些选项卡呈灰色 SDK 工具 SDK 更新站点 此外 显示包详细信息 复选框呈灰色 系统更新正常 没有错误消息 我认为这在 Studio 2 2 的某个时刻发生过 但
  • 编译项目时出错

    每次我尝试编译程序时都会收到此错误 一些项目功能 例如失败的完整解决方案分析 项目和依赖它的项目已被禁用 XamlCTask 任务不支持 DebugType 参数 验证任务中是否存在该参数 并且该参数是可设置的公共参数 实例属性 无法使用其
  • 如何在 fastapi 中使用刷新令牌?

    我试图找到一个使用的例子刷新令牌 https auth0 com blog refresh tokens what are they and when to use them 在 fastapi 中 快速APIdocs https fast
  • Java 8 lambda 语法中大括号何时是可选的?

    我意识到 Java 8 lambda 实现可能会发生变化 但在 lambda build b39 中 我发现只有当 lambda 表达式返回非 void 类型时才能省略大括号 例如 这样编译 public class Collections
  • MySQL Workbench 是否自动为外键创建索引?

    当我在 MySQL 工作台中创建外键时 索引 选项卡上会出现一个新条目 其与我刚刚创建的外键完全相同 这实际上是外键 由于某种原因显示在 索引 选项卡上吗 或者 MySQL Workbench 是否会尝试为我提供帮助并为我创建一个索引 知道
  • 在 DOM 元素上创建角度范围

    我需要创建一个新的角度范围并将其附加到 DOM 元素 我正在修改第三方控件 因此我无法选择仅使用指令 我需要做类似的事情 thirdPartyCallbackfunction domElement var myNewScope scope