[angular]服务之4$window

来源:互联网 发布:wap网站源码 编辑:程序博客网 时间:2024/06/05 22:32
<!DOCTYPE html><html lang="en" ng-app="testServiceWindow"><head>    <meta charset="UTF-8">    <title>测试$window服务</title>    <script src="../frameWork/angular.js"></script>    <script src="../testService/testServiceWindow.js"></script></head><body ng-controller="ctr1.normal">   <button ng-click="ask(false,'您输入的内容不正确')">提示</button>   <button ng-click="ask(true,'确定删除?')">询问</button><dir1>    <controller-normal-title><span>我是title</span></controller-normal-title>    <controller-normal-content><span>我是content</span></controller-normal-content></dir1></body></html>
/** * 摘要:由于service在angular中的地位非常重要,所以得认真对待。 *      服务是一个单例对象,与应用同生死,能够注入,是controller之间通讯的主要工具。 *      (通信还可以用$emit,$broadcast,$on的形式,但这个方式有局限,两个controller得有关系,以后研究). *      服务依赖provider,这个provider一般是module. * service实例分析第四篇:$window服务 * Created by liyanq on 16/12/26. */var testServiceWindow = angular.module("testServiceWindow",[]);var serviceConfirmFun = function ($window) {    return function (msg) {        return $window.confirm(msg) ? console.log("确定"): console.log("取消");    };};var serviceConfirmAndAlertFun = function ($window,serviceConfirm) {    return function (isConfirm,msg) {        return isConfirm?serviceConfirm(msg):$window.alert(msg);    };};var ctr1Fun = function($scope,ca){  $scope.ask = function (isConfirm,msg) {      ca(isConfirm,msg);  }};var dirFun = function (serviceConfirmAndAlert) {    var dir = {};    dir.restrict = "E";    dir.replace = false;    dir.transclude = {        title: "?controllerNormalTitle",        content: "?controllerNormalContent"    };    dir.template = "<div>我是模版的内容</div>" +        "<div ng-transclude='title'></div>"+        "<button ng-click='ask(false,str)'>提示</button>" +        "<button ng-click='ask(true,str)'>询问</button>" +        "<div ng-transclude='content'></div>";    dir.link = function (scope) {        scope.ask = function (isConfirm,msg) {            serviceConfirmAndAlert(isConfirm,msg);        };        scope.str = "ControllerNormal的link执行了";    };    return dir;};testServiceWindow.service("serviceConfirm",["$window", serviceConfirmFun]);testServiceWindow.service("serviceConfirmAndAlert",["$window","serviceConfirm", serviceConfirmAndAlertFun]);testServiceWindow.controller("ctr1.normal",["$scope","serviceConfirmAndAlert",ctr1Fun]);testServiceWindow.directive("dir1",["serviceConfirmAndAlert",dirFun]);


0 0
原创粉丝点击