发表于: 2017-06-11 23:16:07

1 1024


今天完成:

学习有关自定义指令的知识点:

Angularjs Directives是DOM元素(例如属性,元素名,注释或CSS类)上的标记,它告诉AngularJS的 html 编译器($compile) 把特定的操作连接到DOM元素或转化为DOM元素及其子元素。例如, ng-app 属性是一个指令,因此 ng-controller 及所有的以ng-, ng:, ng_, x-ng-bind, data-ng-bind开头的属性都是。

因此,AngularJS的自定义指令,就是你自己的指令,加上编译器编译DOM时运行的原生核心函数。假设我们想在应用中不同页面复用一些特定的代码,而又不复制代码。那么,我们就可以简单地把这段代码放到单独的文件,并调用使用自定义指令的代码,而不是一遍又一遍地敲下来。这样的代码更容易理解。AngularJS中有四种类型的自定义指令:

  • 元素指令

  • 属性指令

  • CSS class 指令

  • 注释指令

元素指令

在html中写下如下的标签,它用来放置代码片段。当我们想使用特定的代码,我们就用上述标签来包含该代码。

<guitar-reviews> ... </guitar-reviews>

在JS文件中,用以下几行代码来使上述angularJS自定义指令生效。

app.directive('guitarReviews'function({
  return {
    restrict    : 'E',  // used E because of element     templateUrl : 'custom-directives/reviews.html'  };
});

代码解释:

如同app.controller,我们先定义app.directive,然后定义guitarReview,后者是html中用到的元素标签名。但是你注意到没有,guitar-review 和guitarReviews是不同的?这是因为 guitar-reviews的连字符转换到驼峰式大小写,因而在JS文件中就变成了guitarReviews。下一步是正在返回参数的匿名函数。 restrict: ‘E’ 是指我们在定义一个自定义元素指令,而 templateUrl则指向要包含的代码片段文件。


明天计划:

继续学习其他自定义指令的写法


遇到困难:

restrict    : 'E',

这段代码的含义不是很理解,也看了一些资料,之前图片上传的时候看到过这个代码,但还不是很理解。


收获:

知道了如何创建自定义指令


返回列表 返回列表
评论

    分享到