$provider.factory和$provider.service不同之处

factory可以返回任何类型,service只能返回对象,不能返回字符串等

 

可以通过factory中定义数据变量共享数据

<div ng-controller='firstController'>
        <input type="text" ng-model='Data.message' />
        <p>{{Data.message}}</p>
        <div ng-controller='secondController'>
            <input type="text" ng-model='Data.message' />
            <p>{{Data.message}}</p>
        </div>
    </div>

 

var m1=angular.module('myApp',[]);
    m1.factory('Data',function(){
        return {
            message:'data'
        }
    });
    m1.controller('firstController',function($scope,Data){
        $scope.data={
            name:'123'    
        }
        $scope.Data=Data;
    });
    m1.controller('secondController',function($scope,Data){
        $scope.Data=Data;
    });

filter在过滤时匹配的是json的value值不匹配key值

filter:function会根据函数过滤,返回真保留,弃假

{{expression|filter:'shanghai'}}匹配expression中value值有上海的数据

{{expression|filter:{{name:'g'}}}}匹配expression中value值有g的数据

{{expression|orderBy:name}}}}以key值name正序排序

{{expression|orderBy:-name}}}}以key值name反序排序

 

transclude作用

.directive('myTag',function(){

  return{

    restrict:'AE',

    template:'<div>新数据<span ng-transclude></span></div>',

    transclude:true  

});

得到的结果:新数据 旧数据

 

 

一个标签中指令不能有两个template

 

指令的scope中false为默认值等同于当前controller的scope,变量共享

当为true是继承controller中$scope的独立作用域,能读取父$scope 的数据