Angular.js 学习笔记
AngularJS 通过新的属性和表达式扩展了 HTML。
AngularJS 可以构建一个单一页面应用程序。
<!-- ng-app 指令定义一个 AngularJS 应用程序。 ng-model 指令把元素值(比如输入域的值)绑定到应用程序。 ng-bind 指令把应用程序数据绑定到 HTML 视图。 --> <div ng-app="" ng-init="firstName='John'"> <p> 名字 : <input type="text" ng-model="name"> </p> <h1>Hello <span ng-bind="name"></span></h1> <!-- AngularJS 指令是以 ng 作为前缀的 HTML 属性。 ng-init 指令初始化 AngularJS 应用程序变量。 --> <p ng-bind="firstName"></p> <p>我的第一个表达式 5 + 5= {{ 5 + 5 }}</p> </div> <script src="../angular.js"></script>
<!-- ng-controller="myCtrl" 属性是一个 AngularJS 指令。用于定义一个控制器。 AngularJS 使用$scope 对象来调用控制器。$scope 属于应用变量和函数 $scope 用来保存AngularJS Model(模型)的对象。 --> <div ng-app="myApp" ng-controller="myCtrl"> 名: <input type="text" ng-model="firstName"><br> 姓: <input type="text" ng-model="lastName"><br> <br> 姓名: {{ fullName() }} </div> <script src="../angular.js"></script> <script> var app = angular.module("myApp", []); //AngularJS 模块定义应用 app.controller("myCtrl", function ($scope) { //AngularJS 控制器控制应用 $scope.firstName = "John"; $scope.lastName = "Doe"; $scope.fullName = function () { return $scope.firstName + " " + $scope.lastName; } }) </script>
<div ng-app="myApp">
<!--
ng-init 指令为 AngularJS 应用程序定义了 初始值。
通常情况下,不使用 ng-init。您将使用一个控制器或模块来代替它。
-->
<h2 ng-init="quantity=1;price=5">价格计算器</h2>
数量:
<input type="number" ng-model="quantity">
<!--ng-model 指令 绑定 HTML 元素 到应用程序数据。-->
价格:
<input type="number" ng-model="price">
<p><b>总价:</b> {{ quantity * price }}</p>
<p ng-init="names=[
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}]">循环对象:</p>
<ul>
<!--ng-repeat 指令对于集合中(数组中)的每个项会 克隆一次 HTML 元素。-->
<li ng-repeat="x in names">{{ x.name + ', ' + x.country }}
</li>
</ul>
<p>自定义指令:</p>
<!--
.directive 函数来添加自定义的指令。
要调用自定义指令,HTMl 元素上需要添加自定义指令名。
使用驼峰法来命名一个指令, runoobDirective, 但在使用它时需要以 - 分割, runoob-directive:
可以通过以下方式来调用指令:元素名,属性,类名,注释
restrict 值可以是以下几种:
E 只限元素名使用
A 只限属性使用
C 只限类名使用
M 只限注释使用
-->
<runoob></runoob>
<div class="runoob"></div>
<runoob-directive></runoob-directive>
</div>
<script src="../angular.js"></script>
<script>
var app = angular.module("myApp", []);
app.directive("runoob", function () {
return {
restrict: "E",
template: "<h1>自定义指令!(runoob 非驼峰法)</h1>"
};
});
app.directive("runoobDirective", function () {
return {
template: "<h1>自定义指令!(runoobDirective 驼峰法)</h1>"
};
});
</script>
<div ng-app="myApp" ng-controller="myCtrl"> 名字: <input ng-model="name"><br /> <form name="myForm"> Email: <input type="email" name="myAddress" ng-model="text"> <span ng-show="myForm.myAddress.$error.email">不是一个合法的邮箱地址</span> </form> <p>列表:</p> <ul> <li ng-repeat="item in items">{{ item }} {{ lastname }}</li> </ul> </div> <script src="../angular.js"></script> <script> var app = angular.module("myApp", []); app.controller("myCtrl", function ($scope, $rootScope) { $scope.name = "John Doe"; $scope.items = ["Emil", "Tobias", "Linus"]; /* 所有的应用都有一个 $rootScope,它可以作用在 ng-app 指令包含的所有 HTML 元素中。 $rootScope 可作用于整个应用中。是各个 controller 中 scope 的桥梁。 用 rootscope 定义的值,可以在各个 controller 中使用。 */ $rootScope.lastname = "Refsnes"; }) </script>

浙公网安备 33010602011771号