当前位置: 首页 > 面试题库 >

扩展角度指令

慕鸿波
2023-03-14
问题内容

我想对第3方指令(特别是Angular UI Bootstrap)进行较小的修改。我只是想添加pane指令的范围:

angular.module('ui.bootstrap.tabs', [])
.controller('TabsController', ['$scope', '$element', function($scope, $element) {
  // various methods
}])
.directive('tabs', function() {
  return {
    // etc...
  };
})
.directive('pane', ['$parse', function($parse) {
  return {
    require: '^tabs',
    restrict: 'EA',
    transclude: true,
    scope:{
      heading:'@',
      disabled:'@' // <- ADDED SCOPE PROPERTY HERE
    },
    link: function(scope, element, attrs, tabsCtrl) {
      // link function
    },
    templateUrl: 'template/tabs/pane.html',
    replace: true
  };
}]);

但是我也想让Bower与Angular-Bootstrap保持同步。运行后bower update,我将覆盖所做的更改。

那么,如何与该Bower组件分开扩展该指令?


问题答案:

解决此问题的最简单方法可能是在您的应用上创建与第三方指令同名的指令。这两个指令都将运行,并且您可以使用priority属性指定运行顺序(优先级更高的优先运行)。

这两个伪指令将共享作用域,您可以通过伪指令的link方法访问和修改第三方伪指令的作用域。

选项2: 您也可以通过简单地将自己任意命名的指令放在与它相同的元素上来访问第三方指令的作用域(假设这两个指令都不使用隔离作用域)。
元素上的所有非隔离作用域指令都将共享作用域。

进一步阅读: https :
//github.com/angular/angular.js/wiki/Dev-Guide%3A-Understanding-
Directives

注意: 我以前的答案是修改第三方服务,而不是指令。



 类似资料:
  • 问题内容: 这两个扩展功能有什么区别? 尽管jquery.extend有充分的文档记录,但是angular.extend缺少详细信息,并且注释没有提供答案。(https://docs.angularjs.org/api/ng/function/angular.extend)。 angular.extend是否也提供深层复制? 问题答案: 并且是 非常 相似的。它们都从一个或多个源对象到目标对象进行

  • 我正在尝试以角度处理数组。我需要从数组中获取管理员用户名,并尝试下面的方法 这是可行的,我可以得到adminName,但它也改变了数据对象的角色,并像这样转换对象 我理解为什么会发生这种情况,我尝试使用扩展运算符,但它不起作用,我尝试了下面的方法 第二步 我可以像下面这样做 但我想这样做使用扩散操作员的方法,所以请建议我哪里出错 Stackblitz链接在这里 https://stackblitz

  • 问题内容: 我想知道是否有可能扩展Angular的输入指令?我想将一些侦听器附加到页面上的所有输入字段。我认为您可以使用来装饰现有模块,但我不知道如何使用指令(更确切地说是输入指令)来完成此操作。 那么,谁能将我推向正确的方向呢?一些例子? 编辑 到目前为止,这是我的指令: 在我看来,可以将其添加到输入字段中,如下所示: 缺点是,对于每个输入字段,我都必须在代码中手动附加此侦听器。因此,更改现有的

  • 问题内容: 我正在尝试使用Angular的“装饰器”功能向某些指令添加功能。假设我的指令名称是myDirective。我的代码如下所示: ]); 我不断收到此消息: 尽我所能,指令在装饰器函数运行时已被注册。任何见识将不胜感激! 问题答案: 本文说明了实际上如何将带指令的decorator()使用。 您只需将“指令”作为名称的后缀即可。因此,在我的示例中,我应该一直在做 http://angula

  • 目前默认生效的的扩展模块是:lookout-ext-jvm,lookout-ext-os(from v1.5.0)。 JVM 线程 metric name metric tags specification jvm.threads.totalStarted — jvm.threads.active — jvm.threads.peak — jvm.threads.daemon — JVM 类加载

  • TiDB Scheduler 是 Kubernetes 调度器扩展 的 TiDB 实现。TiDB Scheduler 用于向 Kubernetes 添加新的调度规则。本文介绍 TiDB Scheduler 扩展调度器的工作原理。 TiDB 集群调度需求 TiDB 集群包括 PD,TiKV 以及 TiDB 三个核心组件,每个组件又是由多个节点组成,PD 是一个 Raft 集群,TiKV 是一个多 R