MVC模式

模型(model)-视图(view)-控制器(controller)

Angular.js采用了MVC设计模式的开源js框架

1、如何在angular.js建立自己的模块(model),控制器(controller),操作模型数据。

  

<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="js/angular.js"></script>
<!--这里我们需要引入一个angular.js -->
</head>
<!--④:在body中,声明执行myCtrl控制器-->
<body ng-controller="myCtrl"> <!--用双花括号括起来来引用,创建好的模型数据 -->
<p>{{name}}</p> <script>
//①: 模块的声明
var app= angular.module("myApp",['ng']); //③: 控制器的声明
app.controller('myCtrl',function($scope){
console.log('in my contro function');
//⑤:操作模型数据
//$scope是建立模型数据和视图的桥梁
$scope.name='web1608';
});
</script>
</body>
</html>

2、ng指令

  对于图像数据(ng-src)和(ng-click)的引用 

<button ng-click="add()">+1</button>
<img ng-src="img/{{imgUrl}}"/>
<script>
//模块的声明
var app=angular.module('myApp',['ng']); //控制器的声明
app.controller('myCtro',function($scope){
$scope.num=10;
$scope.imgUrl='1.jpg';
$scope.add=function(){
$scope.num++;
console.log($scope.num);
}
})
</script>

需要使用img的src属性是同样 也要用ng指令中定义好的ng-src  来使用模型数据。否则浏览器显示后会提示有错误 .

  使用(ng-repeat)来遍历数据:

 <!DOCTYPE html>
<html ng-app="myApp">
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="js/angular.js"></script>
</head>
<body ng-controller="myCtro">
<!--简易 添加 数据和 删除 数据 ng-repeat -->
<table>
<thead>
<tr>
<th>单价</th>
<th>数量</th>
<th>小计</th>
<th>删除</th>
</tr>
</thead>
<tbody>
<!--ng-repeat 遍历方式① -->
<tr ng-repeat="shop in cart track by $index">
<!--shop in cart 是遍历数组对象cart 给shop(自己命名) 和 for in 类似 -->
<!--track by $index 每个遍历过程的shop 都有一个下标 $index-->
<td ng-repeat="(key,value) in shop">
<!-- ng-repeat 遍历方式② -->
<!-- 遍历shop 关联数组 方式 : 键对值-->
{{value}}
</td>
<td>
<button ng-click="delete($index)">删除</button>
</td>
</tr>
</tbody>
</table>
<button ng-click="add()">添加</button>
<script>
var app=angular.module('myApp',['ng']); app.controller('myCtro',function($scope){
$scope.cart=[
{cname:'冰箱',price:1000,num:1},
{cname:'烤箱',price:300,num:1},
{cname:'保鲜箱',price:200,num:1},
]; $scope.delete=function($index){
//对cart进行删除操作
$scope.cart.splice($index,1); } $scope.add=function(){
//直接入栈 添加新数据
$scope.cart.push({cname:'保鲜箱',price:200,num:1});
}
})
</script>
</body>
</html>

  显示结果:

Angular.js 的初步认识的更多相关文章

  1. angular 实现modal windows效果(即模态窗口,半透明的遮罩层),以及bootstrap(css,components,js)的初步学习

    废话不说,直接上代码.可直接看效果,对着分析..今天算是bootstrap 入门了,开心.. 突然居然很多事情就是那样,不要太多的畏惧,迈出第一步其实就成功了一半了. <html ng-app= ...

  2. 通过Web Api 和 Angular.js 构建单页面的web 程序

    通过Web Api 和 Angular.js 构建单页面的web 程序 在传统的web 应用程序中,浏览器端通过向服务器端发送请求,然后服务器端根据这个请求发送HTML到浏览器,这个响应将会影响整个的 ...

  3. 青出于蓝而胜于蓝 — Vue.js对Angular.js的那些进步

    Angular.js与Vue.js是非常有渊源的两款前端框架,据Vue.js的官方网站描述,在其早期开发时,灵感来源就是Angular.js.而在很多方面,Vue.js也正像是中国的那句古话,&quo ...

  4. MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录

    注:文章内容都是摘录性文字,自己阅读的一些笔记,方便日后查看. MVC MVC(Model-View-Controller),M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是 ...

  5. angular.js:13920 Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope <- testServe

    angular.js:13920 Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope <- testSer ...

  6. (翻译)Angular.js为什么如此火呢?

    在本文中让我们来逐步发掘angular为什么如此火: Angular.js 是一个MV*(Model-View-Whatever,不管是MVC或者MVVM,统归MDV(model Drive View ...

  7. angular.js写法不规范导致错误

    以下写法:没有明确指定module和controller,写法不规范. 更改angular.js版本会出bug. <html ng-app> <head> <title& ...

  8. Angular.js实现折叠按钮的经典指令.

    var expanderModule=angular.module('expanderModule',[]) expanderModule.directive('expander',function( ...

  9. Angular.js通过bootstrap实现经典的表单提交

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel= ...

随机推荐

  1. 第四篇:白话tornado源码之褪去模板外衣的前戏

    加班程序员最辛苦,来张图醒醒脑吧! ... ... ... 好了,醒醒吧,回归现实看代码了!! 执行字符串表示的函数,并为该函数提供全局变量 本篇的内容从题目中就可以看出来,就是为之后剖析tornad ...

  2. stream数据流

    首先必须先要了解Buffer,Buffer是js和c++的结合体,类数组,通常与Stream一起用: 1. (1).Buffer是个类,因此可以构建成对象 (2).buf具有数组的性质 字符串转换成二 ...

  3. [SharePoint 2013] Create event receiver for external list

    Main list for creating event receiver for external list Subscribe   storage, it could be data table ...

  4. buildroot--uboot&kernel&rootfs全编译工具

    参考: http://www.crifan.com/files/doc/docbook/buildroot_intro/release/html/buildroot_intro.html https: ...

  5. [CC]手动点云分割

    CloudCompare中手动点云分割功能ccGraphicalSegmentationTool, 点击应用按钮后将现有的点云分成segmented和remaining两个点云, //停用点云分割功能 ...

  6. HTML5 video标签播放视频下载原理

    HTML5 video https://github.com/remy/html5demos/blob/master/demos/video.html <video preload=" ...

  7. Android tween 动画 XML 梳理

    前言: Tween动画是展现出旋转.渐变.移动.缩放的这么一种转换过程,即补间动画.Tween动画有两种定义方式:XML形式,编码形式.这次主要来梳理XML的方式配置动画 (1)XML定义动画,按照动 ...

  8. gulp 外挂 rename 的使用

    安装和使用就不详细说了.前面有. gulpfile.js 的配置 var gulp = require('gulp'), rename = require('gulp-rename'), // 记得先 ...

  9. People Tools catalog tables.

    People Tools catalog tables. Projects PSPROJECTDEFN — Project header table PSPROJECTITEM — Definitio ...

  10. mysql 日期加减操作

    1. MySQL 为日期增加一个时间间隔:date_add() set @dt = now(); select date_add(@dt, interval 1 day);        -- add ...