微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

详解Angular-ui-BootStrap组件的解释以及使用

关于UI BootStrap

UI BootStrap 是angularUI团队用纯粹angularJS语法编写的Bootstrap组件。

1. 关于ng-router(angular-router.js)和ui-router(angular-ui-router.js)的区别

  • ngroute是用AngularJS框架的路由的核心部分。
  • ui-router是一个社区库,它是用来提高完善ngroute路由功能的。

实例:

使用ng-router:

首先引入js文件

rush:js;">

然后在html中

rush:xhtml;">

示例AngularJS 路由应用


// 用ng-view来显示对应的html视图

在controller中

rush:js;"> var myApp = angular.module('myApp',['ngRoute']).config(['$routeProvider',function ($routeProvider) { // 首先在模块中加入那个Route依赖,函数中引入$routerProvider $routeProvider .when('/',{template:'this is main page'}) // 根据提供的when函数来进行相应配置 .when('/computers',{ template:'this is conputer page' }) .when('/printers',{ template:'this is printer page' .otherwise({redirectTo: '/'}); }]);

完成

使用ui-router:

ui-router的使用方法

1. 使用uib-tooltip

<div class="form-group">
<button href="#" rel="external nofollow" uib-tooltip-html="htmlToolTip">使用html的提示框

<div class="form-group">
<button type="text" uib-tooltip-template = "'myTooltipTemplate.html'" tooltip-placement="top-right">模板提示框

使用模板的提示框

tooltip可以使用的属性有:

属性名 默认值 备注 tooltip-animation true 是否在显示和隐藏时使用动画 tooltip-append-to-body false 是否将提示框放在body的末尾 tooltip-class 加在tooltip上的自定义的类名 tooltip-enable true 是否启用 tooltip-is-open false 是否显示提示框 tooltip-placement top 提示框的位置。可设置的值包括:top,top-left,top-right,bottom,bottom-left,bottom-right,left,left-top,left-bottom,right,right-top,right-bottom tooltip-popup-close-delay 0 关闭提示框前的延迟时间 tooltip-popup-delay 0 显示提示框前的延迟时间 tooltip-trigger mouseenter 显示提示框的触发事件

2. 使用popover

<div class="form-group">
<button uib-popover="this is popover box" popover-placement="auto" popover-trigger="'mouseenter'">文本提示框

<div class="form-group">

popover的属性有:

popover-animation true 是否在显示和隐藏时使用动画 popover-append-to-body false 是否将提示框放在body的末尾 popover-enable true 是否启用 popover-is-open false 是否显示提示框 popover-placement top 提示框的位置。可设置的值包括:top,right-bottom popover-popup-close-delay 0 关闭提示框前的延迟时间 popover-popup-delay 0 显示提示框前的延迟时间 popover-trigger mouseenter 显示提示框的触发事件 popover-title 标题

大部分属性和tooltip也是一样的,只是没有popover-class,另外多了个popover-title。

需要注意的一点是,popover的全局配置和tooltip一样,是使用$uibTooltipProvider来配置的。

全局配置tooltip和popover参照网址

2. 使用uib-datepicker并且封装成指令

这个插件是datepicker只能获取日期!不是datetimepicker!还有一个叫timepicker,真纳闷为什么angular团队不把这两个插件组成一个。。。

因为项目用到的第三方库实在太多,不愿意再去别的地方再弄一个时间控件,所以就用了angular自带的这个, 说实话,很一般。。。

代码吧:

指令声明:

rush:js;"> emms.directive('emmsSingleDatepicker',function() {

return {

restrict: 'AE',replace: false,templateUrl: 'directives/single-datepicker/single-datepicker.html',scope: {

dateValue: '=ngModel' //逆向绑定输入框的值到父作用域的ng-model

},controller: function($scope,$filter) {

$scope.dateOptions = {

maxDate: new Date(2099,12,30)

};

$scope.altInputFormats = ['yyyy-M!-d!'];

$scope.open = function() {

$scope.opened = true;

};

$scope.transformDate = function() {

$scope.dateValue = $filter('date')($scope.date,'yyyy-MM-dd HH:mm:ss');

};

}

}

});

指令模板:uib-datepicker就在这

rush:xhtml;">

<span class="input-group input-group-xs" style="width:80%;margin:0 auto;">

<input type="text" class="form-control" uib-datepicker-popup="{{'yyyy-MM-dd'}}" ng-model="date" is-open="opened"

clear-text="清空" current-text="今天" ng-required="true" close-text="关闭" ng-change="transformDate()"/>

<span class="input-group-btn">

<button type="button" class="btn btn-default" ng-click="open()"><i class="glyphicon glyphicon-calendar">

调用:(别忘了引入指令的js文件

rush:xhtml;"> <emms-single-datepicker ng-model="newAudit.annualDate">

3. uib-tab标签

直接在要使用的div或者容器内使用

rush:xhtml;"> heading="汽车" th:include="vehicle/info/templates::car">汽车 heading="工作车" th:include="vehicle/info/templates::audit" select="toAudit()">工作车 heading="可用车辆" th:include="vehicle/info/templates::insurance" select="toInsurance()">可用车辆

4. uib-modal 模态框

前台调用

rush:xhtml;">

打开模态框的函数

rush:js;"> $scope.openVehicleDetail = function(vehicle) {

// 弹出确认窗口

var modalinstance = $uibModal.open({

templateUrl: 'vehicle-detail.html',controller: 'VehicleDetailCtrl',animation: true,resolve: {

vehicle: vehicle,allTypes: function() {

return $scope.allTypes;

}

},size: 'lg'

});

// 更新页面内容

modalinstance.result.then(function(response) {

refreshByCloseStatus(response,$scope.vehicles);

});

}

模态框对应的controller

rush:js;"> emms.controller('VehicleDeleteCtrl',['$scope','$uibModalinstance',function($scope,$uibModalinstance) {

$scope.confirm = function() {

judgeDelete(flag,instance);

$uibModalinstance.close("close");

}

$scope.cancel = function() {

$uibModalinstance.dismiss("cancel");

}
}]);

模态框对应的html模板

rush:js;">

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐