相关疑难解决方法(0)

在Angular.js中可以向其他人注入什么"东西"?

我很难理解Angular中的依赖注入.所以我的问题是,任何人都可以解释哪些"类型",如控制器,工厂,提供商等,我们可以注入其他类型,包括相同"类型"的其他实例?

我实际上正在寻找的是这个表充满了y/n.对于具有相同行/列的单元格,这意味着将一个"类型"的值注入另一个具有相同"类型"的另一个"类型"

+----------------+----------+------------+-----------+---------+--------+----------+---------+-------+
| Can we inject? | Constant | Controller | Directive | Factory | Filter | Provider | Service | Value |
+----------------+----------+------------+-----------+---------+--------+----------+---------+-------+
| Constant       |          |            |           |         |        |          |         |       |
| Controller     |          |            |           |         |        |          |         |       |
| Directive      |          |            |           |         |        |          |         |       |
| Factory        |          |            |           |         |        |          |         |       |
| Filter         |          |            |           |         |        |          |         |       | …
Run Code Online (Sandbox Code Playgroud)

dependency-injection angularjs

140
推荐指数
3
解决办法
4万
查看次数

扩展角度指令

我想对第三方指令(特别是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
  };
}]);
Run Code Online (Sandbox Code Playgroud)

但我也想让Angular-Bootstrap与Bower保持同步.我一跑bower update,就会覆盖我的变化.

那么我该如何将这个指令与这个凉亭组件分开扩展呢?

javascript angularjs bower angularjs-directive angular-ui-bootstrap

114
推荐指数
4
解决办法
5万
查看次数

在AngularJs中修饰ng-click指令

我一直在寻找修改AngularJS ng-click指令来添加一些额外的功能.我对使用它有什么不同的想法,但一个简单的方法是将Google Analytics跟踪添加到所有ng-click,另一个是防止双击.

要做到这一点,我的第一个想法是使用装饰器.所以像这样:

app.config(['$provide', function($provide) {
  $provide.decorator('ngClickDirective', ['$delegate', function($delegate) {
    // Trigger Google Analytics tracking here
    return $delegate;
  }]);
}]);
Run Code Online (Sandbox Code Playgroud)

但是这不会起作用,因为装饰器会在实例化时触发,而不是在满足指令中的表达式时触发.因此,在这种情况下,它会在带有指令的元素加载时进行分析,而不是在单击元素时进行分析.

所以关于真正的问题.装饰器是否有某种方法可以获得指令实例化的元素?如果我可以,从委托,到达元素,我可以绑定我自己的点击事件,以触发除ng-click之外.

如果没有,您将如何在所有ng-clicks上添加内容?

decorator angularjs angularjs-directive angularjs-ng-click

15
推荐指数
2
解决办法
4594
查看次数