WEB前端程序开发程序员@IT·互联网

AngularJS-study亦混点对比-01

2017-02-07  本文已影响0人  Victor细节

ng-bind VS ng-bind-template

ng-bind:

<h2 ng-bind="name"></h2>

ng-bind-template

<h2 ng-bind-template="{{name}} is {{age}}"></h2>

ng-bind-template在指令中可以使用模板,显示的话必须是表达式语法,否则在这里面都是字符串

ng-include

<div ng-include="'footer.html'"> 

ng-include可以引入其他页面,注意一定要加'',否则会当成变量

$scope VS controller-as

$scope

controller('MainCtrl',['$scope',function($scope){
    //声明一个变量
    $scope.name = "Tom";
}

controller-as

视图中

<body ng-controller="MainCtrl as ctrl">
<h2>使用ctrl <span>{{ ctrl.name }}</span></h2>

控制器中

 controller('MainCtrl',[function(){
    //声明一个变量
   var self = this;
   self.name = "Tom";
}

ng-href VS ng-src

这个不多讲了,直接上代码

<a ng-href="{{ ctrl.obj.href }}" ng-bind="ctrl.obj.href"></a>
![]({{ ctrl.obj.src }})
<script type="text/javascript">
    angular.module('myApp',[])
        .controller("MainCtrl",[function(){
            var self = this;
            self.obj = {
                href:"http://www.baidu.com",
                src:"C://Users/Administrator/Desktop/无标题.png"
            }
        }])
</script>

ng-show VS ng-hide

<!-- ng-show--当条件为true的时候显示 -->
<h2  ng-show="ctrl.flag">showH2</h2>
<!-- ng-hide--当条件为true的时候显示 -->
<h2  ng-hide="ctrl.flag">hideH2 </h2>

ng-class的两种用法

1、通过对象数组的方法

视图

<div ng-class="{true:'change1',false:'change2'}[className]"></div>

控制器

<script>
  var app=angular.module("myModule",[])
   app.controller('firstController',function($scope){
     $scope.className=true;
   })
</script>

实现很简单,就是当className为true的时候class为change1,相反则为change2。
但是有一点不好的只能够让一个元素拥有两种状态

2、通过key/value

视图

<div ng-class{'class1':ctrl.select1,'class2':ctrl.select2,'class3':ctrl.select3}">
    hello world
</div>

控制器

angular.module('myApp',[])
        .controller('MyCtrl',[function(){
            var self = this;
            self.select1 = true;
        }]);

当select1为true的时候,class则为class1,个人认为这个是比较推荐的,可以弥补第二种方式的缺憾~

上一篇下一篇

猜你喜欢

热点阅读