将变量传递给指令模板而不创建新范围

2024-03-21

有没有一种方法可以使用属性将变量传递给指令而不创建新的作用域?

HTML

<div ng-click='back()' button='go back'></div>

JS

.directive('button', function () {
    return {
        scope: {
            button: '@'
        },
        template: "<div><div another-directive></div>{{button}}</div>",
        replace: true
    }
})

问题是ng-click='back()'现在指的是指令范围。 我还能做ng-click='$parent.back()'但这不是我想要的。


默认情况下,指令不会创建新的作用域。如果您想明确说明,请添加scope: false根据您的指令:

<div ng-click='back()' button='go back!'></div>
angular.module('myApp').directive("button", function () {
    return {
        scope: false,  // this is the default, so you could remove this line
        template: "<div><div another-directive></div>{{button}}</div>",
        replace: true,
        link: function (scope, element, attrs) {
           scope.button = attrs.button;
        }
    };
});

fiddle http://jsfiddle.net/mrajcok/gHjU4/

自从有了新楼盘,button,正在范围上创建,您通常应该使用以下命令创建一个新的子范围scope: true正如@ardentum-c 在他的回答中所说的那样。新范围将原型继承 https://stackoverflow.com/questions/14049480/what-are-the-nuances-of-scope-prototypal-prototypical-inheritance-in-angularjs从父范围,这就是为什么你不需要把$parent.back()到你的 HTML 中。

另一件值得一提的事情是:即使我们正在使用replace: true,点击元素仍然调用back()。这是有效的,因为“替换过程将所有属性/类从旧元素迁移到新元素”。 --指导文件 http://docs.angularjs.org/guide/directive
So ng-click='back()' button='go back!'被迁移到第一个div在指令的模板中。

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

将变量传递给指令模板而不创建新范围 的相关文章

随机推荐

  • llvm OCaml 绑定

    我正在研究 llvm OCaml 绑定 我通过 opam 安装了 llvm 包 opam install llvm 当我在 utop 中使用 llvm 时 出现以下错误 require llvm Error The external fun
  • 使用perl解码unicode转义字符

    我讨厌问一个无疑已经回答过十几次的问题 但我发现编码问题令人困惑 并且很难将其他人的问答与我自己的问题相匹配 我正在从在线 json 文件中提取信息 但我的 perl 脚本无法正确处理 unicode 转义字符 脚本如下所示 use LWP
  • 有没有办法在没有数据源的情况下创建 LINQ 查询作为变量?

    前言 我的核心问题与此非常相似 如何编写一个干净的存储库而不将 IQueryable 暴露给应用程序的其余部分 https stackoverflow com questions 1030992 how can i write a clea
  • 不插入成员的触发器不起作用

    我有这张桌子 CREATE TABLE members member id INT PRIMARY KEY NOT NULL first name VARCHAR 20 last name VARCHAR 20 web page VARCH
  • Vimeo 网站的缩略图比 YouTube 更难

    Merged https meta stackexchange com questions 158066 what is a merged question with 从 Vimeo 获取 img 缩略图 questions 1361149
  • 我可以将一个 .mdf 文件与多个 DBMS(SQL Server 2008 和 2012)一起使用吗?

    在家里 我安装了 SQL Server 2008 R2 Express 它附加到某个 mdf 文件 我正在安装 SQL Server 2012 开发人员版 我可以将 2012 附加到同一个 mdf 文件吗 从逻辑上讲 只要 SQL Serv
  • pandas / matplotlib:分面条形图

    我正在制作一系列包含两个分类变量和一个数字的数据条形图 我所拥有的是下面的内容 但我想做的是通过分类变量之一来进行刻面 就像facet wrap in ggplot 我有一个有点有效的示例 但是我得到了错误的绘图类型 线而不是条形图 并且我
  • 为什么 pub Upgrade 不升级软件包而只是显示它们

    我有 gt pub upgrade Resolving dependencies 6 2s analyzer 0 18 0 9 newer versions available angular 0 14 0 args 0 10 0 2 5
  • 聚合来自传感器的时间序列

    我有大约 500 个传感器 每个传感器大约每分钟发出一次值 可以假设传感器的值保持恒定 直到发出下一个值 从而创建时间序列 传感器在发送数据时并不同步 因此观察时间戳会有所不同 但所有数据都是集中收集并按传感器存储 以允许按传感器子集进行过
  • 将客户行为添加到 CDI 上下文中的所有 Spring Data Jpa 存储库

    我使用 CDI 成功注入 jpa 存储库 我想向所有存储库添加自定义行为 软删除 使用 spring 时 我可以通过指定存储库基类来启用客户行为 EnableJpaRepositories repositoryBaseClass Stage
  • WPF 灵活的 TabControl 标头

    我想要一个TabControl与多个TabItems These TabItems每个都有一个标题文本 这些文本的长度可能相差很大 例如 5 个字符长和 15 个字符长 我想要TabControl仅将标题对齐一行 所有选项卡标题应使用相同的
  • 如何通过Bootstrap垂直分隔线画线?

    我正在使用 Twitter Bootstrap 我需要绘制菜单线 https www dropbox com s hl8moeabxxecu8j dropdown png https www dropbox com s hl8moeabxx
  • 将 Create-React-App 与 Material UI 结合使用

    我是 Material UI 和 ReactJS 的新手 我一直在玩创建 React 应用程序 CRA https github com facebookincubator create react app and 反应带 https gi
  • 包括控制器中的模块

    我在 ruby on Rails 应用程序的 lib 目录中完成了一个模块 就像是 module Select def self included base base extend ClassMethods end module Class
  • ES6 中的延迟模块加载是如何工作的

    我怎么能够延迟加载ES6 模块 经过lazy 我的意思是我不想实际加载模块不需要 例如 我可以使用 RequireJS 执行以下操作 function someEventHandler var SomeModule require some
  • 使用Python的Azure定时器触发函数

    我正在使用 Python 3 x 编写 Azure 计时器触发器 我已经运行了一个这样的函数 我想我知道该怎么做 从 JS 创建一个 然后删除 index js 并创建一个 run py 但这一次 当我运行 python 函数时 总是收到错
  • 删除 R 中除撇号和字内破折号之外的标点符号

    我知道如何单独删除标点符号并保留撇号 gsub alnum db text 或者如何使用 tm 包保留字内破折号 removePunctuation db text preserve intra word dashes TRUE 但我找不到
  • 为什么 IPython.display.Image 没有显示在输出中?

    我有一个如下所示的单元格 from IPython display import Image i Image filename test png i print test 输出只是 test 我在输出中看不到图像 我检查了该文件是否存在 无
  • 在 Qt 拖放中使用 QMimeData 传递数据

    我试图了解在 Qt 中使用拖放时数据如何传递 根据我从我一直在研究的示例中了解到的内容 您首先通过重写继承的方法将小部件定义为可拖动的QWidget 在重写方法的实现中 我一直在查看的示例实例化了一个指向QMimeData对象 并通过调用在
  • 将变量传递给指令模板而不创建新范围

    有没有一种方法可以使用属性将变量传递给指令而不创建新的作用域 HTML div div JS directive button function return scope button template div div div button