自己使用angular实现html中类似title的功能

1)首先写指令

exports.define = function(md) {

//这个是写的通用的安全使用apply的服务

md.factory(‘safeApply‘, function($rootScope){

return function(scope, fn){

var phase = scope.$root.$$phase;

if(phase == ‘$apply‘ || phase == ‘$digest‘){

if(fn && (typeof (fn) === ‘function‘)){

fn();

}

}else{

scope.$apply(fn);

}

}

});

md.directive(‘showTitleDiv‘,[‘safeApply‘,function(safeApply){

return{

restrict: ‘A‘,

templateUrl: ‘/showTitleDiv.html‘,

scope: {

divobj: ‘=‘

},

link:function(scope, element, attrs){

scope.$watch(‘divobj.top‘, function(){

safeApply(scope, function(){

element.css({‘position‘: ‘absolute‘,

‘top‘ : scope.divobj.top + ‘px‘,

‘left‘: scope.divobj.left + ‘px‘,

‘color‘: ‘#cccccc‘,

‘width‘: scope.divobj.width + ‘px‘,

‘height‘: scope.divobj.height + ‘px‘,

‘background-color‘: ‘#FFF‘,

‘border‘: ‘1px solid #CCC‘,

‘overflow-y‘: ‘auto‘,

‘overflow-x‘: ‘hidden‘

});

})

});

}//return

};

}]);

};

});

2)对应的模板

<div ng-show="divobj.isShow">

<div>层里面的内容...</div>

</div>

3)如何引入指令

在你要调用的页面上添加:<div show-title-div divobj="titlediv"></div>

在页面对应的js中引入指令

define(function(require){

//引用js中定义的常量

var PFConstants = require(‘./productConstants.js‘);

var md = angular.module("xxx",[]);

//引入指令

require(‘./directives/showTitleDivdirective.js‘).define(md);

md.controller(‘xxxCtrl‘,function(){

});

});

4)如何触发指令:

$scope.showtitle = function(index){

//修改层的top和left属性值

$scope.dutydiv ={

top: $(‘#aa‘).position().top+(index*20),

left: $(‘#aa‘).position().left,

width: 350,

height: 250,

isShow: true

};

};

$scope.hidetitle = function(){

$scope.dutydiv ={

top: 0,

left: 0,

width: 0,

height:0,

isShow: false

};

};

时间: 2024-10-13 06:32:36

自己使用angular实现html中类似title的功能的相关文章

smarty模板中类似for的功能实现

1. 功能说明,在页面使用smarty循环100次输出,类似for循环100次 1 {section name=total loop=100} 2 {$smarty.section.total.index+1} //当前的索引 3 {$smarty.section.total.iteration} //用于显示循环的次数 4 {/section} 5 6 {assign var=i value=0} 7 {section name=total loop=100} 8 {assign var=i

matlab中subplot函数的功能 类似python

原文:http://blog.163.com/my_it_dream_pwj/blog/static/17841430520112294342649/ 和python 中类似 subplot 功能 分割figure,创建子坐标系 语法 h = subplot(m,n,p) or subplot(mnp)       subplot(m,n,p,'replace')       subplot(m,n,P)       subplot(h)       subplot('Position',[le

angular在模板中使用属性引发Cannot read property &#39;xxx&#39; of undefined

在使用ng2的过程中,发现模板中如下方式 <li *ngFor="let item of model"> {{item.name}} </li> 不会又任何问题. 如果是一下未使用结构指令方式,直接使用组件的属性 <li > {{model.name}}</li> 就会报错null错误,一开始百思不得其解,后来搞明白,model是异步请求获取的数据,在定义的时候let mode:any 时是属于unde值,而这时组件模板已经开始渲染了,也

在 Angular 2 Component 中使用第三方 JS 库

本文所有内容以 Angular 2 Quick Start 项目为基础,使用 TypeScript 语言. 如上图,最近遇到一个需求,需要在一个刚启动的 Angular 2 项目中使用 snap.svg 操作页面上的 svg 元素做动画. 我粗略的看了下, snap.svg 的实现似乎并没有遵从什么模块规范,就是常见的提供几个全局变量完事.如果真的耿直的在 Component 中去用的话,会在执行 tsc 编译成 js 文件这一过程中报错. 这是因为 TypeScript 编译器并不知道 sna

制作类似ThinkPHP框架中的PATHINFO模式功能(二)

距离上一次发布的<制作类似ThinkPHP框架中的PATHINFO模式功能>(文章地址:http://www.cnblogs.com/phpstudy2015-6/p/6242700.html)已经过去好多天了,今晚就将剩下的一些东西扫尾吧. 上一篇文章已经实现了PATHINFO模式的URL,即我们访问MVC模式搭建的站点时,只需要在域名后面加上(/module/controller/action)即可,很智能化.并且通过new Object时的自动触发函数实现类文件的自动载入,因此只要我们搭

swift中类似宏定义

建一个类 如,在Contans.swift中 import UIKit let kMAIN_SIZE = UIScreen.mainScreen().bounds 在其他地方直接用 比如在 MyTabbarViewController.swift中 var bgView = UIView(frame:CGRectMake(0, 0, kMAIN_SIZE.width, kMAIN_SIZE.height - 20 - 44)); swift中类似宏定义,布布扣,bubuko.com

深入理解jQuery、Angular、node中的Promise

最初遇到Promise是在jQuery中,在jQuery1.5版本中引入了Deferred Object,这个异步队列模块用于实现异步任务和回调函数的解耦.为ajax模块.队列模块.ready事件提供基础功能.在用jQuery操作DOM的时候对Promise的使用欲不够强烈,最近学习node和Angular,需要用js写业务逻辑和数据操作代码的时候这种场景需求就出来了.一般来说事件适合在交互场景中运用,因为用户的行为本来就是分散的,而promise这样的流程控制适合在后台逻辑中处理业务. //j

angular input输入框中使用filter格式化日期

最近使用了angular日期选择器,不过需要把选中的日期输出到input输入框中,如果按照默认情况,显示的是时间戳形式的时间,不符合要求,需要把格式变成特定格式,但是input上ng-model上又不能直接使用filter,因此需要一种方法把这里显示的内容格式化. 网上寻找解决方案就是写个directive,具体实例代码如下: JS angular.module('dateRange',[]).directive('dateFormat', ['$filter',function($filter

swift中 类似OC的宏定义

OC 中调试打印 /** *  自定义Log */ #ifdef DEBUG #define JYLog(...)        NSLog(__VA_ARGS__) #else #define JYLog(...) #endif // swift中我写了这么一个类,进行调试输出 调用方法  Debug.Log(error) import UIKit class Debug: NSObject{ // TODO: 为调试修改 private static let debug = true cla