zoukankan      html  css  js  c++  java
  • angular组件开发

    项目中经常会有一些公共组件,比如header,如果每个页面都写一遍的话显得很冗余,而且不利于维护,这时候我们就会考虑将这些公共部分抽取出来,做成一个单独的组件。

    然而angular不是很熟悉啊~怎么啵~

    折腾了一下,才发现angular的组件开发主要依赖自定义指令(directive )来实现。

    主要使用到directive的几个属性,如下:

    restrict: 使用驼峰法来命名,用来限制指令通过特定的方式来调用,默认值为 EA

    • E 作为元素名使用,如<my-directive></my-directive>

    • A 作为属性使用,如<div my-directive></div>

    • C 作为类名使用,如<div class="my-directive"></div>

    • M 作为注释使用,如<!-- directive: my-directive -->

    scope: 指定作用域

    • false 默认值,共享父级作用域

    • true 继承父级作用域并创建指令自己的作用域

    • {} 创建指令自己的独立作用域,与父级毫无关系

    templateUrl: 用来指定模板文件的url,如templateUrl: 'header'

    template:设置模板,如template:'这是一条指令'

    controller:控制器

    比如如果创建一个header组件,我们先新建一个文件夹header.html

    <header>
      <h1>这里是标题</h1>
      <div class="goback" ng-touchstart="goBack($event)">返回</div>
      <div>这里是右边的文字</div>
    </header>

    接着新建directive.js

    angular.module('myHeader', ["zz.rule"])
      .directive('myHeader', function() {
        return {
          restrict: 'A',
          templateUrl: 'header',
          controller: function($scope, $element, $attrs) {
            // 返回上一页
            $scope.goBack = function(event) {};
          }
        };
      })

    好了,到这里一个组件就穿件好了,那么问题来了,怎么使用呢?

    其实就跟平成引入插件一样一样的

    创建index.html

    <div zz-header></div>
    
    angular.module('mymodel', ["myHeader"])
    

    超级简单有没有,赶紧get起来

  • 相关阅读:
    JSTL标签
    EL(表达式语言)
    JDBC技术
    Java中的一些术语的解释
    Servlet过滤器和监听器
    MVC-初识
    EF-初识
    .NET细节知识总结,不断更新
    多线程-Task、await/async
    多线程-Thread和ThreadPool
  • 原文地址:https://www.cnblogs.com/10manongit/p/12899434.html
Copyright © 2011-2022 走看看