在这里我想在项目中封装一个图片轮播的指令

(本项目使用的是ionic框架)

1)定义指令

 define(['app'],function(myapp){
myapp.directive('myslidebanner',['$state',function(s){
return{
templateUrl:'directives/slide-banner/slide-banner.html',
scope:{
banimg:'=',//数据的来源
},
link:function(s,el,atr){
s.$watch('banimg',function(picList){
//在这里,我使用的了,$watch监听banimg,原因就是banimg的数据是来自于数据
//库,这就会造成页面渲染结束,数据还没有取到的尴尬现象
if(picList)
s.picList=picList;
});
s.showbaner=atr.showbaner;//atr是使用指令的元素的属性集合
},
controller:['$state','$scope',function($state,s){ }]
}
}]);
});

 指令的模板页面:

<div class="index-banner">
<!--<img ng-src="img/deal/home/banner.png" style="width:100%;">-->
<div ng-if="!showbaner">
<div style="left: 0px; transition-duration: 300ms; transform: translate(0px, 0px) translateZ(0px);">
<a class="box">
<img ng-src={{banimg[0].imgdomin+banimg[0].imgid}} style="height:305px">
</a>
</div>
</div>
<div class="app_index_slide" ng-if="showbaner">
<ion-slide-box class="app_index_slide" does-continue="true" auto-play="true"
on-slide-changed="slideChanged($index)"
delegate-handle="slideimgs"
>
<ion-slide ng-repeat="item in picList track by $index">
<!--href="#/tab/ad_linkurl?url={{item.LinkUrl}}&title={{item.Title}}"-->
<a class="box" style="display:block" ui-sref="tab.deal_ad_linkurl({url:item.link,title:item.title})"><img
ng-src={{item.imgdomin+item.imgid}}></a>
</ion-slide>
</ion-slide-box>
</div>

2)指令的使用

 <myslidebanner banimg="banimg" showbaner="{{showbaner}}">
    <!--解释:banimg定义成‘=’的形式,在使用时候,是直接用双引号就行,不需要使用{{}},banimg的数据来源于页面控制器中调用接口返回数据来源-->
</myslidebanner>

指令中的controller,和link函数在一些情况下是可以相互代替的。

我们完全可以将link函数换成controller

定义时的独立作用域:
scope:{
  banimg:'=',
  showbaner:'='
}
controller:["$scope",'$state',function(s,$state){
    s.$watchGroup(['banimg','showbanner'],function(picList,showbaner){
    if(picList)
      s.picList=picList;
      s.showbaner=true;
  });
}]

 使用的时候:

<myslidebanner banimg="banimg" showbaner="showbaner"> 
</myslidebanner>

  

 

 

 

基于ionic框架封装一个图片轮播指令的几点的更多相关文章

  1. iOS回顾笔记(05) -- 手把手教你封装一个广告轮播图框架

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  2. Angular2组件与指令的小实践——实现一个图片轮播组件

    如果说模块系统是Angular2的灵魂,那其组件体系就是其躯体,在模块的支持下渲染出所有用户直接看得见的东西,一个项目最表层的东西就是组件呈现的视图.而除了直接看的见的躯体之外,一个完整的" ...

  3. 基于jQuery可悬停控制图片轮播代码

    基于jQuery可悬停控制图片轮播代码.这是一款可悬停切换全屏轮播jQuery幻灯片.效果图如下: 在线预览   源码下载 实现的代码: <!-- 轮播广告 --> <div id= ...

  4. 实现一个图片轮播-3d播放效果

    前言:最近在做一个音乐播放器,首页要做一个图片轮播,看了bootstrap的carousel插件以及移动端的swipe.js库,都是平面图片轮播的效果,所以自己想着实现类似网易云app里那种3d图片轮 ...

  5. Android中使用开源框架android-image-indicator实现图片轮播部署

    之前的博文中有介绍关于图片轮播的实现方式,分别为(含超链接): 1.<Android中使用ViewFlipper实现屏幕切换> 2.<Android中使用ViewPager实现屏幕页 ...

  6. Vue学习—Vue写一个图片轮播组件

    1.先看效果: 熟悉的图片轮播,只要是个网站,百分之90以上会有个图片轮播.我认为使用图片轮播. 第一可以给人以一种美观的感受,而不会显得网站那么呆板, 第二可以增加显示内容,同样的区域可以显示更多内 ...

  7. VUE开发一个图片轮播的组件

    完成效果图如下: vue开发的思路主要是数据绑定,代码如下: <template> <div ref="root" style="user-select ...

  8. onethink插件二(首页图片轮播)

    2014年8月1日 15:34:15 基于slice-box 写了一个图片轮播的插件. 一.功能: 1.图片轮播功能 2.自定义功能(数量,效果,打开方式) 3.多重效果一键切换 4.独立性强,不影响 ...

  9. 基于面向对象的图片轮播(js原生代码)

    无论你想走多远,你都需要不断地走下去.前端最精华的便是原生的js,这也是我们前端工程师的技术分层的重要指标,也提现这你的代码能力,开发的水平.废话不多说,进入今天的主要分享————基于面向对象思想的图 ...

随机推荐

  1. oracle11g中SQL优化(SQL TUNING)新特性之Adaptive Cursor Sharing (ACS)

    1.   ACS简介 Oracle Database 11g提供了Adaptive Cursor Sharing (ACS)功能,以克服以往不该共享的游标被共享的可能性.ACS使用两个新指标:sens ...

  2. List原理

    ArrayList: ArrayList是一个可变数组实现,实现了List接口的所有方法,并允许存取null值.ArrayList基本上等同与Vector,但它只对writeObject()和read ...

  3. SQL Server 调优系列玩转篇二(如何利用汇聚联合提示(Hint)引导语句运行)

    前言 上一篇我们分析了查询Hint的用法,作为调优系列的最后一个玩转模块的第一篇.有兴趣的可以点击查看:SQL Server调优系列玩转篇(如何利用查询提示(Hint)引导语句运行) 本篇继续玩转模块 ...

  4. 往SD卡中写文件的方法。

    package com.lixu.writetosd; import java.io.File; import java.io.FileOutputStream; import java.io.IOE ...

  5. python笔记02:列表与元素

    本章将引入一个新的概念:数据结构.数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合.这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在python中,最基本的数据结构是序 ...

  6. python metaclass

    看了很多类似的博客,这篇算是写的比较完善的,转载以备后期查看 原文: 一 你可以从这里获取什么? 1. 也许你在阅读别人的代码的时候碰到过metaclass,那你可以参考这里的介绍. 2. 或许你需要 ...

  7. ios平台cocos2d-x播放音频、视频、音效的Demo(支持网络视频)

    最近由ios应用转做游戏,游戏开始时需要播放一个视频,由于本身cocos2d-x播放视频的相关库,在网上搜到的资料都不是很全,我自己试过在cocos2dx直接调用ios的MediaPlayer来播放, ...

  8. Python 文件路径

    # 文件路径: # 1. 相对路径: 相对于当前程序所在的文件夹, 如果在文件夹内, 随便找, 直接写名字 # 如果不在这个文件夹内, 可能需要出文件夹或者进文件夹 # 出文件夹 ../ # 进文件夹 ...

  9. Android实现EditText的富文本编辑

    前言 本文是我之前写的这篇文章<Android图文混排-实现EditText图文混合插入上传>的升级版,除了在EditText实现了图片上传之外,还包含了视频上传.云盘文件上传.录音上传以 ...

  10. torch7 安装 并安装 hdf5模块 torch模块 nn模块 (系统平台为 ubuntu18.04 版本)

    今年的CCF A会又要开始投稿了,实验室的师弟还在玩命的加实验,虽然我属于特殊情况是该从靠边站被老板扶正但是实验室的事情我也尽力的去帮助大家,所以师弟在做实验的时候遇到了问题也会来问问我,这次遇到的一 ...