www.qjdy.com-奇迹赌场 > www.qjdy.com > 并调用使用自定义指令的代码

原标题:并调用使用自定义指令的代码

浏览次数:145 时间:2019-07-18

AngularJS的自定义指令,正是您本人的授命,加上编写翻译器编写翻译DOM时运转的原生宗旨函数。那恐怕很难精晓。今后,假设我们想在接纳中不一样页面复用一些特定的代码,而又不复制代码。那么,咱们就足以归纳地把这段代码放到单独的文本,并调用使用自定义指令的代码,并不是贰回又贰处处敲下来。那样的代码更易于明白。AngularJS中有各种等级次序的自定义指令:

  1.     成分指令
  2.     属性指令
  3.     CSS class 指令
  4.     注释指令

在大家现有的app中落实他们前边,大家来看看自定义指令是个怎样样子:
 
要素指令

在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则针对要包涵的代码片段文件。
 
本性指令

在html文件的html标签中敲入如下属性,这么些标签用来盛放代码片段。当大家想采纳一定代码片段,大家只要敲下如此的标签来含有该代码。  

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

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

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

在意: AngularJS 推荐您用简短的 css 和平常的笺注代替自定义指令中的CSS和注释.

现在让我们在app中完毕自定义指令吧。你能够在那边下载项目文件。作者把reviews部分的代码放到单独的公文,再把该代码片段赋给二个因素,最终在details.html页面中使用.
 
第一步

在钦点的文件夹下新建多个文件夹命名字为cDirectives,用来寄存在自定义的授命。然后,在该文件夹下创设三个reviews.html文件,用于全体用户的reviews。此时,你的文件夹档案的次序结构如下:

图片 1

 第二步

在details.html中剪切review部分,并加多<user-reviews></user-reviews>标签如下所示:

图片 2

 第三步

将您在details.html页面中剪切的代码拷贝至reviews.html如下所示:

<!-- Review Tab START, it has a new controller -->
<div ng-show="panel.isSelected(3)" class="reviewContainer" ng-controller="ReviewController as reviewCtrl" >

<!-- User Reviews on each guitar from data.json - simple iterating through guitars list -->
<div class="longDescription uReview" ng-repeat="review in guitarVariable[whichGuitar].reviews"> 
  <h3>Review Points: {{review.star}} </h3>
  <p> {{review.body}} ~{{review.name}} on <date>{{review.createdOn | date:'MM/yy'}} </p>
</div><!-- End User Reviews -->

<!-- This is showing new review preview-->
<div ng-show="add === 1" class="longDescription uReview" > 
  <h3>Review Points: {{reviewCtrl.review.star}} X</h3>
  <p> {{reviewCtrl.review.body}} ~ {{reviewCtrl.review.name}} </p>
</div>

<!-- Add new Review to specific guitar - click this link to show review adding pannel -->
<a href ng-click="add=1" class="addReviewLink">Add review</a>  

<!-- form validates here using form name and .$valid and on submission we are going to addReview function with guitarID -->
<form class="reviewForm" name="reviewForm" ng-submit="reviewForm.$valid && reviewCtrl.addReview(guitarVariable.indexOf(guitarVariable[whichGuitar]))" novalidate ng-show="add===1" >
  <div>
    Review Points: 
    <!-- ng-option here is setting options, cool? -->
    <select ng-model="reviewCtrl.review.star" ng-options="point for point in [5,4,3,2,1]" required >    
    </select>
    Email: 
    <input type="email" ng-model="reviewCtrl.review.name" required>
    <button type="submit">Submit</button>
    </div>
    <textarea placeholder="Enter your experience with this guitar..." ng-model="reviewCtrl.review.body"></textarea>
</form><!-- END add new review -->
</div><br /><!-- END Review Tab -->

 
第四步

目前能够在user-reviews标签中增多行为了。让大家张开controller.js,加多如下代码:

GuitarControllers.directive('userReviews', function() {
 return {
  restrict  : 'E', // used E because of element 
  templateUrl : 'partials/cDirectives/reviews.html'
 };
});

 

代码解释:

大家的<user-reviews>指令在此处产生了userReviews(以camel形式表示)并且连字符不见了。上面大家得以说,当它被调用时加载templateUOdysseyL中的文件同期对成分E限制该指令。

大家正好自定义了多个指令。就算看起来大家的行使中尚无生成,但是以往大家的代码较此前已经拓展了很好的布署性。你能为描述和规范自定义指令吗?自个儿尝尝一下呢。

你或然感兴趣的作品:

  • AngularJS创造自定义指令的章程详解
  • AngularJS优雅的自定义指令
  • AngularJS使用自定义指令替代ng-repeat的情势
  • AngularJS 自定义指令详解及实例代码
  • AngularJS自定义指令达成面包屑效率完整实例
  • AngularJS完毕自定义指令与调节器数据交互的措施身体力行
  • AngularJS 自定义指令详解及示范代码
  • AngularJS自定义指令之复制指令达成格局
  • AngularJS自定义指令详解(有分页插件代码)
  • 详解angularJS自定义指令间的并行交互
  • AngularJS达成自定义指令及指令配置项的艺术

本文由www.qjdy.com-奇迹赌场发布于www.qjdy.com,转载请注明出处:并调用使用自定义指令的代码

关键词: PTS电子游艺

上一篇:于是通过Math对象的这几个方法

下一篇:没有了