angularjs 1.3.x入门教程 3 Angular Templates

这一节稍微复杂 angularjs 是用MVC 模式,git bush 到angular-phonecat文件夹,输入以下代码,将这一节的示例代码git出来

git checkout -f step-2
打开 app/index.html:

可以看到如下代码

<html ng-app="phonecatApp">
<head>
  ...
  <script src="bower_components/angular/angular.js"></script>
  <script src="js/controllers.js"></script>
</head>
<body ng-controller="PhoneListCtrl">

  <ul>
    <li ng-repeat="phone in phones">
      <span>{{phone.name}}</span>
      <p>{{phone.snippet}}</p>
    </li>
  </ul>

</body>
</html>
可以看到之前的硬编码被一个angular指令ngRepeat和两个表达式替代了

在 <li> 元素中的ng-repeat 属性是一个angular 循环指令,phones 代表一个list或者一个array,phone 代表其中的一个item.

{{phone.name}} 是一个表达式,这里相当于phone所代表的item中的name属性的值

我们在body 元素中添加了一个新的指令ng-congroller,并将其关联到了PhoneListCtrl id上,表示一个id为PhoneListCtrl 的controller。

{{phone.name}}表达式所使用的module便是在这个controller中构建的。

注意,我用用ng-app="phonecatApp"指定了一个angular module,phonecatApp是这个module的name,并且 在这个module中有一个名为PhoneListCtrl 的controller



数据模型(model)在控制器PhoneListCtrl controller.中进行实例化

打开app/controllers.js,可以看到初始化代码

var phonecatApp = angular.module('phonecatApp', []); // 创建module

//初始化数据模型
phonecatApp.controller('PhoneListCtrl', function ($scope) {
  $scope.phones = [
    {'name': 'Nexus S',
     'snippet': 'Fast just got faster with Nexus S.'},
    {'name': 'Motorola XOOM™ with Wi-Fi',
     'snippet': 'The Next, Next Generation tablet.'},
    {'name': 'MOTOROLA XOOM™',
     'snippet': 'The Next, Next Generation tablet.'}
  ];
});

scope讲解

在html 元素中的ng-app 指令定义了一个module ,拥有root作用域,controller 继承了module的作用域,并拥有自己的子作用域,并且在自己的作用域中提供上下文。表达式在controller中,可以直接使用controller作用域中的变量。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值