zoukankan      html  css  js  c++  java
  • 结合项目学习angularJS

    1、引入angular:<script src="lib/js/angular.1.4.8.js"></script>

    <body ng-app="mc">(ng-app指令标记了AngularJS脚本的作用域并引导应用)

    2、

    var mc = angular.module('mc', [
        'ui.router',
        'ui.bootstrap',
        'ui.colorpicker',
        'ngFileUpload',
        'ng.ueditor'
    ]);

    module是angular中重要的模块组织方式,angular.module(name[, requires][, configFn]); 

    参数:name(string):模块名称
        requires(string 数组):依赖的模块组,可以为空数组[];指定 requires 将产生新的模块,否则获取已有模块

        configFn(Function): 模块的配置函数

    返回:(Module):模块对象

    3、

    mc.config(['$stateProvider', '$urlRouterProvider',
        function($stateProvider, $urlRouterProvider) {
            $urlRouterProvider.when("main", "/login");
            $urlRouterProvider.otherwise("/login");
            $stateProvider.state("login", {
                    url: "/login",
                    templateUrl: "htmls/main/login.html",
                }).state("sysnotice", {
                    url: "/sysnotice",
                    params: {"param" : null},
                    templateUrl: "htmls/main/sysnotice.html",
                })...
        }
    ]);

    config(configFn):在模块装载过程中执行指定的函数。

    4、路由(ui-router可用于多视图)

    1)引入angular-ui-router:<script src="lib/js/angular-ui-router.min.js"></script>

    2)包含模块:angular.module('mc', ['ui.router'...]);

    3)使用 ui-view 指令:<div ui-view></div>(该 div 内的 HTML 内容会根据路由的变化而变化)

    4)定义路由规则

    a)$urlRouterProvider.when("main", "/login");
    $urlRouterProvider.otherwise("/login");

    $urlRouterProvider.when(what,handler):
    参数:what:需要重定向的传入路径;handler:重定向的路径/处理程序。

    $urlRouterProvider.otherwise(rule):定义一个当请求的路径是无效路径时跳转的路径。
    参数:rule:你想重定向的url路径或一个返回的网址路径的规则函数。

    b)$stateProvider:处理路由状态的服务

           $stateProvider.state("login", {
                    url: "/login",
                    templateUrl: "htmls/main/login.html",
                }).state("sysnotice", {
                    url: "/sysnotice",
                    params: {"param" : null},
                    templateUrl: "htmls/main/sysnotice.html",
                })
    $stateProvider.state(name,stateConfig):注册一个状态,并给定其配置。

    参数:name:状态的名称。
    stateConfig:状态配置对象。配置具有以下各项属性:

    templateUrl:string/function,模板路径的字符串,或者返回模板路径字符串的函数。

    url:string,当前状态的对应url...

    5、控制器

    <!--login.html-->
    <div ng-controller="LoginCtrl">
        <form ng-submit="login()">
            <input type="text" placeholder="用户名" ng-model="username" />
            <input type="password" placeholder="密码" ng-model="password" /><input type="submit" value="登录"/>
        </form>
    </div>
    //login.js
    mc.controller('LoginCtrl', ['$rootScope', '$scope', '$http','$location',
        function($rootScope, $scope, $http,$location) {
                $scope.login = function() {
                    var data = {
                      "UserId":$scope.username,
                      "Password":$scope.password
                  };
                    $http.post('/admin/login.do',         
                      data).success(function(data) {
                    if (!$rootScope.isSuccess(data.ReturnCode)) {
                        $scope.mcErr("sm", data.ReturnMsg);
                    } else {
                        $rootScope.PUser = data.PUser;
                        $location.path("main");
                    }            
                   }).error(function(data) {
                        $scope.mcErr("sm", "error");
                   });
              }     
    }]);         
    //mc.js
    mc.run(['$rootScope', '$modal', '$state',
        function($rootScope, $modal, $state) {
            $rootScope.$state = $state; // ui-router路由状态控制
            $rootScope.mcErr = function(size, errormsg) { // 错误信息弹框
                var modalInstance = $modal.open({
                    ...
                });
                ...
            };
    ]);

    AngularJS 应用组成如下(MVC):View(视图), 即 HTML;Model(模型), 当前视图中可用的数据;Controller(控制器), 即 JavaScript 函数,可以添加或修改属性。

    AngularJS 应用程序被控制器控制,ng-controller 指令定义了应用程序控制器。

    内置指令:ng-model 指令绑定了 HTML 表单元素到 scope 变量中;ng-submit 指令用于在表单提交后执行指定函数...

    mc.run执行指定函数在依赖注入容器产生后。 

    6、Scope作用域:应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带,有可用的方法和属性

    当你在 AngularJS 创建控制器时,你可以将 $scope 对象当作一个参数传递。当在控制器中添加 $scope 对象时,视图 (HTML) 可以获取了这些属性和方法。scope 有作用域。

    所有的应用都有一个 $rootScope,它可以作用在 ng-app 指令包含的所有 HTML 元素中,是各个 controller 中 scope 的桥梁。用 rootscope 定义的值,可以在各个 controller 中使用。

    7、基于angular来实现的一个bootstrap模态框。详见https://my.oschina.net/codingBingo/blog/715869

    1)引入ui-bootstrap-tpls:<script src="lib/js/ui-bootstrap-tpls-0.13.0.min.js"></script>

    2)包含模块:angular.module('mc', ['ui.bootstrap'...]);

    3)引入$modal:mc.run([... '$modal'...,function(...$modal...){}]);

    8、$http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。

    $location 服务解析地址栏中的URL,类似 window.location 对象

  • 相关阅读:
    SVN更新的时候前面的子母的意思(A C D M G U R I)
    SQL总结(一)基本查询
    eclipse中如何打开工作空间里面已经有的项目
    java for循环的几种写法
    Eclipse自动生成作者、日期注释等功能设置
    linux任务计划及周期性任务计划
    进程管理工具使用
    Btrfs管理及应用
    LVM基本应用,扩展及缩减实现
    Linux-RAID
  • 原文地址:https://www.cnblogs.com/colorful-coco/p/6648034.html
Copyright © 2011-2022 走看看