• AngularJS学习2-指令(directive)/控制器(controller)/作用域(scope)


    ng-app  angular的根元素,从这里开始编译DOM

    ng-model 声明变量,并将元素的值绑定到这个变量中

    遍历  ng-repeat

    一般用在列表和下拉菜单

    <div ng-app="" ng-init="names=['Jani','Hege','Kai']">
      <p>使用 ng-repeat 来循环数组</p>
      <ul>
        <li ng-repeat="x in names">
          {{ x }}
        </li>
      </ul>
    </div>

    自定义指令

    看来angular是全局变量

      <body>
        
        <div ng-app="app">
    
            <!-- 调用方法1 -->
            <say-hello></say-hello>
    
        </div>
    
        <script>
    
            // 获取到app实例
            var app = angular.module("app",[]);
            
            //添加say指令
            app.directive("sayHello",()=>{
                return {
                    //一定要template,直接返回字符串不行
                    template : "<h1>Hello World!</h1>"
                };
            });
    
        </script>
    
    
      </body>

    控制器controller,里面写的是页面的业务逻辑

    变量名一定要驼峰,不然会解析错误的

    其实ide也报错了

    很多坑,如果有某些地方漏了,整个模板都会不起作用。。

    <body>
    
        <!-- 这里必须指定要使用的controller名字 -->
        <div ng-app="app" ng-controller="myCtrl">
    
            <!-- <input>标签代表输入框 -->
            <input type="text" ng-model="firstName"><br>
            <input type="text" ng-model="lastName"><br>
    
            <!-- 不能直接用变量fullName,因为没有办法直接声明,只能用函数 -->
            <div>
                {{fullName()}}
            </div>
            
    
        </div>
    
    
        <script>
            var app = angular.module('app',[]);
    
            app.controller('myCtrl',($scope)=>{
                $scope.firstName = "hello";
                $scope.lastName = "world";
    
                //声明函数,注意不要加()
                $scope.fullName = ()=>{
                    return $scope.firstName+" "+$scope.lastName;
                }
            });
            
        </script>
    
    
    </body>

    外部文件中的控制器

    和js一样,肯定是要分开文件写的,只需要在script标签里面引入js即可,其他写法/使用方法一样

    <script src="personController.js"></script>

    作用域scope

    scope 是一个 JavaScript 对象,带有属性和方法,这些属性和方法可以在视图和控制器中使用

    1、在控制器中,作为参数,上面有例子了。

    2、在控制器给scope添加对象,view可以拿到。使用不需要$scope前缀

    3、在view使用ng-model给scope添加对象,控制器可以拿到。控制器使用需要$scope前缀

    根作用域

    是各个controller里面的scope的桥梁

    遍历数组的时候,需要一个常量的时候。当然也可以直接用常量

    <ul>
        <li ng-repeat="x in names">{{x}} {{lastname}}</li>
    </ul>
    
    app.controller('myCtrl', function($scope, $rootScope) {
        $scope.names = ["Emil", "Tobias", "Linus"];
        $rootScope.lastname = "Refsnes";
    });
  • 相关阅读:
    信息安全系统设计基础第九周学习总结
    信息安全程序设计基础第五周学习总结
    信息安全程序设计基础第二周学习总结
    信息安全程序设计基础第三周总结
    ubuntu 13.10安装jdk 1.7 owen
    vim的配置文件 owen
    程序的思想是相通的,语言只是一种手段 owen
    如何删除开机系统选择 owen
    easybcd添加或删除启动选项 owen
    星际译王词库 owen
  • 原文地址:https://www.cnblogs.com/weizhibin1996/p/9314457.html
Copyright © 2020-2023  润新知