URL:

https://toddmotto.com/ultimate-guide-to-learning-angular-js-in-one-day/?utm_source=javascriptweekly&utm_medium=email

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>test</title>
    <script src="js/lib/angular.min.js"></script>
    <script >
        var myApp = angular.module('myApp', []);
        myApp.controller('MainCtrl', ['$scope', 'Math',  function($scope, Math) {
            var a = 12;
            var b = 24;
            $scope.myModel = '';
            $scope.result = Math.multiply(a, b);
            $scope.greeting = 'Todd Motto';
            $scope.numbers = [10, 25, 35, 45, 60, 80, 100];
            $scope.lowerBound = 42;
            $scope.greaterThanNum = function(item) {
                return item > $scope.lowerBound;
            };
            $scope.user = {};
            $scope.user.details = {
                "username": "Todd Motto",
                "id": "89101112"
            };
        }]);
        myApp.directive('customButton', function() {
            return {
                restrict: 'A',
                replace: true,
                transclude: true,
                templateUrl: 'templates/customButton.html',
                link: function (scope, element, attrs) {
                    //dom mani/event
                }
            };
        });
        myApp.service('Math', function() {
            this.multiply = function(x, y) {
                return x * y;
            };
        });
        myApp.filter('reverse', function() {
            return function(input, uppercase) {
                var out = '';
                for (var i = 0; i < input.length; i++) {
                    out = input.charAt(i) + out;
                }
                if (uppercase) {
                    out = out.toUpperCase();
                }
                return out;
            }
        });
        myApp.controller('EmailsCtrl', ['$scope', function($scope) {
            $scope.emails = {};
            $scope.emails.messages = [{
                "from": "Steve Jobs",
                "subject": "I think I'm holding my phone wrong :/",
                "sent": "2013-10-01T08:05:59Z"
            },{
                "from": "Ellie Goulding",
                "subject": "I've got Starry Eyes, lulz",
                "sent": "2013-09-21T19:45:00Z"
            },{
                "from": "Michael Stipe",
                "subject": "Everybody hurts, sometimes.",
                "sent": "2013-09-12T11:38:30Z"
            },{
                "from": "Jeremy Clarkson",
                "subject": "Think I've found the best car... In the world",
                "sent": "2013-09-03T13:15:11Z"
            }];
            $scope.deleteEmail = function(index) {
                $scope.emails.messages.splice(index, 1);
            };
            $scope.main = {};
            $scope.main.test1 = [];
            $scope.main.test2 = [{"some": "data"}];
        }]);

    </script>

</head>
<body>
<div ng-app="myApp">
    <div ng-controller="MainCtrl">
        welcome, {{ user.details.username}}.<br>
        user ID: {{ user.details.id }}<br>
        {{result}}<br>
        <a custom-button>Click Me</a><br>
        no filter: {{greeting}}<br>
        Reverse: {{greeting|reverse}}<br>
        <input type="text" ng-model="lowerBound" /><br>
        <li ng-repeat="number in numbers|filter: greaterThanNum">
            {{number}}
        </li><br>
        <input type="text" ng-model="myModel" placeholder="Start typing..." />
        <p>My model data: {{ myModel }} </p>
    </div>
    <div ng-controller="EmailsCtrl">
        <ul>
            <li ng-repeat="message in emails.messages">
                <p>{{ message.index }}</p>
                <p>From: {{ message.from }}</p>
                <p>Subject: {{ message.subject }}</p>
                <p>{{message.sent|date:'MMM d, y h:mm:ss a'}}</p>
                <p><a ng-click="deleteEmail($index)">Delete email</a></p>
            </li>
        </ul>
         <p>Test 1: {{ main.test1.length > 0 && 'My data' || 'No data' }}</p>
        <p>Test 2: {{ main.test2.length > 0 && 'My data' || 'No data' }}</p>
    </div>
    <a href="" ng-click="toggle = !toggle">Toggle nav</a>
    <ul ng-show="toggle">
        <li>Link 1</li>
        <li>Link 2</li>
        <li>Kub 3</li>
    </ul>
</div>
</body>
</html>

再次实操一次angular的基本语法的更多相关文章

  1. 新硬盘挂载-fdisk+mount案例实操

    新硬盘挂载-fdisk+mount案例实操 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 现在很多服务器都支持热插拔了,当有新的硬盘插入到服务器上我们需要将其分区,格式化,然后挂载 ...

  2. linux基础实操四

    实操一: 1)为新加的硬盘分区,一个主分区大小为10剩余空间给扩展分区,在扩展分区上划分2个逻辑分别为5G 2)式化主分区为ext3系统 #mkfs.ext3 /dev/sdb1 3 将逻辑分区设置为 ...

  3. 【Social listening实操】作为一个合格的“增长黑客”,你还得重视外部数据的分析!

    本文转自知乎 作者:苏格兰折耳喵 ----------------------------------------------------- 在本文中,作者引出了"外部数据"这一概 ...

  4. (二)Linux实操之——网络配置、进程管理、服务管理、组管理、YUM

    接上段   (一)Linux实操之——权限.任务调度.磁盘分区 4.网络配置 4.1 NAT模式的网络配置 目前我们采用的网络配置是NAT模式. windows下cmd通过 ipconfig 命令可以 ...

  5. 大数据学习笔记——Linux完整部署篇(实操部分)

    Linux环境搭建完整操作流程(包含mysql的安装步骤) 从现在开始,就正式进入到大数据学习的前置工作了,即Linux的学习以及安装,作为运行大数据框架的基础环境,Linux操作系统的重要性自然不言 ...

  6. css知识笔记:水平垂直居中(别只看,请实操!!!)

    css实现元素的水平垂直居中. (尝试采用5W2H方法说明): 别只看,请实操!!! What: 1.这篇文档主要描述元素水平方向居中的几种最常见和最实用的几种方式,并说明优缺点. 2.写这篇文章的目 ...

  7. css知识笔记:垂直居中(别只看,请实操!!!)

    css实现元素的垂直居中. (尝试采用5W2H方法说明): 别只看,请实操!!! What: 1.这篇文档主要描述元素水平方向居中的几种最常见和最实用的几种方式,并说明优缺点. 2.写这篇文章的目的, ...

  8. css知识笔记:水平居中(别只看,请实操!!!)

    css实现元素的水平居中. (尝试采用5W2H方法说明): 别只看,请实操!!! What: 1.这篇文档主要描述元素水平方向居中的几种最常见和最实用的几种方式,并说明优缺点. 2.写这篇文章的目的, ...

  9. 干货 | 京东云应用负载均衡(ALB)多功能实操

    应用负载均衡(Application Load Balancer,简称ALB)是京东云自主研发的一款七层负载均衡产品,主要面向HTTP和HTTPS流量的WEB应用程序,提供灵活的功能配置.应用负载均衡 ...

随机推荐

  1. 将ECSHOP会员注册页面的Email修改成非必填项

    将ECSHOP会员注册页面的Email修改成非必填项 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2011-07-29   有人说,在后台的 “会员注册项设置 ”里面 ...

  2. 禁止掉非法IP登陆服务器

    今天查看线上服务器日志/var/log/secure发现有很多国外的ip尝试登陆服务器,以前一直没太注意这方面,作为系统管理员真是失职啊,虽然服务器已经设置了强密码,但是看到有人想搞你还是很不爽的.一 ...

  3. gdb命令与调试方法

    单线程 http://www.cnblogs.com/lidabo/p/5629830.html 编译程序一定要加-g选项 gcc -g test.c -o test 进入gdb调试:gdb 程序名 ...

  4. oracle经典书籍推荐 转

    很多网友询问如何选择入门书籍,学Oracle有什么好书,这里给出一些常见书籍的介 绍.首先声明,本文只涉及国外作品,因为国内的作品好的极少,大多是拼凑之作. 提到入门学习,我又得搬Tom(Thomas ...

  5. Mongodb c#增删改查

    写在前面 最近项目需要,就研究了下mongodb,也是为了快速上手,就自己弄了一个简单的例子,这里记录一下. Mongodb 传统的关系数据库一般由数据库(database).表(table).记录( ...

  6. wordpress编辑主题时报错Warning: scandir() has been disabled for security reasons in

    在ubuntu下面安装了一个wordpress程序,在后台什么都没干,编辑主题时,发现页面中报下面的错误. notice: /home/wwwroot/test.localhost/wordpress ...

  7. 安装lnmp后,忘记phpmyadmin的root密码,怎么办

    如果忘记MySQL root密码,如何重设密码?执行如下命令:wget http://soft.vpser.net/lnmp/ext/reset_mysql_root_password.sh;sh r ...

  8. [原] Android performClick无效,UI线程理解

    原因 开发过程中遇到button.performClick()无效,原因是View.performClick()需要再UI线程中调用才会有效执行. 响应系统调用的方法(比如报告用户动作的onKeyDo ...

  9. HDOJ 1083 Courses

    Hopcroft-Karp算法模板 Courses Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  10. Swift Tour 随笔总结 (4)

    Switch的一个例子: let vegetable = "red pepper" switch vegetable { case "celery": let ...