angularjs - AngularJS 中的组件是什么?

标签 angularjs angularjs-components

当我发现 AngularJS 中有很多组件时,我正在阅读有关指令的一些内容,并且想知道指令和组件之间的区别是什么。

有一个功能组件,类型组件,服务组件,过滤器组件,提供者组件等......然后最重要的是我发现模块组件是一个由指令,服务,过滤器,提供者,模板,全局API组成的组件,并测试模拟。这往往会使事情变得更加困惑。我在 Angular 文档中找不到“组件”的定义来解释列出的组件类型之间的区别。

那么AngularJS中的“组件”到底是什么?它像可重用的代码块一样简单吗?

顺便说一句,我目前使用的是 Angular 1.4.2 版。

最佳答案

Angular 组件是在 1.5 版中引入的。

组件是指令的简化版本。它不能进行 dom 操作(不是链接或编译方法),并且“替换”也消失了。

组件是“限制:E”,它们是使用对象(而不是函数)配置的。

一个例子:

  app.component('onOffToggle', {
    bindings: {
      value: '=',
      disabled: '='
    },
    transclude: true,
    template: '<form class="form-inline">\
                       <span ng-transclude></span>\
                       <switch class="small" ng-model="vm.value" ng-disabled="vm.disabled"/>\
                     </form>',
    controllerAs: 'vm',
    controller: ['$scope', function($scope) {
      var vm = this;
      $scope.$watch("vm.disabled", function (val) {
        if (!val) {
          vm.value = undefined;
        }
      })
    }]
  });

进一步阅读:
https://toddmotto.com/exploring-the-angular-1-5-component-method/

关于angularjs - AngularJS 中的组件是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33513409/

相关文章:

javascript - 围绕 AngularJS/KnockoutJS 等数据绑定(bind)库创建抽象

javascript - 混合 $q 和 ES6 promise 时测试 Angular

angularjs - 如何在 Angular 1.5 组件中使用 ng-options?

javascript - 将绑定(bind)传递给 Angular 组件中的 TemplateUrl

javascript - 如何在 Angularjs 中 dom 完成渲染后运行指令

angularjs - Angular 和 CORS

javascript - 如何访问父元素并使用angularJs删除它?

angularjs - 在组件完全准备好后执行一个函数

javascript - 如何在 AngularJS 1.x 中将数据从组件发送到父级

angularjs - 带有 ui-router 的 Angular 1.5 组件解析 : Unknown provider