zoukankan      html  css  js  c++  java
  • MVC中使用AngularJS-01,基本

    Angularjs是一个前端的Javascript MVC 库和框架,使前端得到更好的设计、维护和测试。它的核心特性有:MVC、双向数据绑定、指令和语义化标签、模块化工具、依赖注入、HTML模板,以及对常用工具的封装,例如$http、$cookies、$location等。本篇体验Angularjs在MVC中的基本使用。

    通过NuGet,输入关键字Angularjs,安装"Angular JS Core"。
    1

    把angular.js引入页面:

    <script src="~/Scripts/angular.js"></script>

      ng-app指令

    当Angular找到DOM中含有ng-app指令的元素时,才会进行初始化,并可以调用Angular的其它指令。

    <html ng-app>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
         <script src="~/Scripts/angular.js"></script>
        <script src="~/Scripts/controller.js"></script>
        <link href="~/Content/bootstrap.css" rel="stylesheet" />
    </head>
        <body>
        <div>
            <h3>Angular Hello world</h3>
            10+2={{10 + 2}}
        </div>
        </body>
    </html>

    2


     

      使用"ng-model"指令进行数据双向绑定

    <div>
            <input type="text" placeholder="输入Name" ng-model="name"/>
            {{name}}
        </div>


    3

    通过ng-model=”name”,把input和页面显示实现了双向绑定。

      使用"ng-controller"指令,引入controller

    在NuGet中输入关键字bootstrap,安装在MVC4下的bootstrap。
    4

    把bootstrap.cs引入视图页。

    创建controller.js如下:

    var MainController = function($scope) {
        var model = {
            Name: "My Books",
            Books: [
                { Title: '阳光踩烂的日子', isComplete: false },
                { Title: '那些年', isComplete: false },
                { Title: '时间是用来浪费的', isComplete: true }
            ]
        };
    
        $scope.readingList = model;
    };

    把controller.js引入视图页。Home/Index.cshtml如下:

    <html ng-app>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
         <script src="~/Scripts/angular.js"></script>
        <script src="~/Scripts/controller.js"></script>
        <link href="~/Content/bootstrap.css" rel="stylesheet" />
    </head>
    <body>
        <div ng-controller="MainController">
            <div>
                <h2>{{readingList.Name}}的阅读清单</h2>
            </div>
            <br/>
            <div>
                <table class="table table-bordered table-condensed">
                    <thead>
                        <tr>
                            <th>标题</th>
                            <th>是否完成阅读</th>
                            <th></th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr ng-repeat="book in readingList.Books">
                            <td>{{book.Title}}</td>
                            <td>{{book.isComplete}}</td>
                            <td><input type="checkbox" ng-model="book.isComplete"/></td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
    </body>
    </html>

    运行:
    5

    当改变checkbox的勾选状态,isComplete值也在true和false之间切换,这点体现了Angularjs的双向绑定。
    6

      filter实现过滤功能

    添加一个Input:

    <div>
                <input type="text" ng-model="titleFilter" placeholder="输入关键字搜索"/>
            </div>

    以"|"的形式,给每行添加过滤器:

    <tr ng-repeat="book in readingList.Books | filter:titleFilter">

    运行,输入关键字:
    7

      使用"ng-click"指令为DOM元素绑定事件

    在controller.js中添加如下:

    $scope.addBook = function() {
            model.Books.push({ Title: $scope.newTitle, isComplete: false });
            $scope.newTitle = '';
        };

    在<div ng-controller="MainController">中添加如下:

    <div>
                    <input type="text" ng-model="newTitle" placeholder="输入新书名" required>
                    <input type="button" ng-click="addBook()" value="添加" class="btn" />
                </div>

    运行,添加数据:
    8

      选择使用Angularjs还是Knockout?

    Angular比Knockout承担了更多的服务端工作,如果使用的框架是轻量级的,比如NodeJS,偏向使用Angular。
    如果选择的框架是ASP.NET,偏向使用Knockout。

  • 相关阅读:
    java基础知识回顾之javaIO类---InputStreamReader和OutputStreamWriter转化流
    java基础知识回顾之javaIO类---FileInputStream和FileOutputStream字节流复制图片
    基本知识《一》继承初始化过程
    java调用matlab函数
    Dubbo基础篇-zookeeper安装(单点)
    《转》从0到100——知乎架构变迁史
    算法
    【转】基于LDA的Topic Model变形
    《转》探寻微博背后的大数据原理:微博推荐算法简述
    一个完整推荐系统的设计实现-以百度关键词搜索推荐为例
  • 原文地址:https://www.cnblogs.com/darrenji/p/3841612.html
Copyright © 2011-2022 走看看