1. 程式人生 > >6、自定義filter 、directive、Angular元件技術

6、自定義filter 、directive、Angular元件技術

1、filter 過濾器

– 輸出資料之前處理一下
– 自定義過濾器

app.filter('名字',function(){
    // filter 的程式碼
})

e.g

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
    <script>
        var app = angular.module('wbx'
,[]); app.filter('myFilter',function(){ alert('外層函式') return function(input){ alert('內層函式') return input + 5; } }) app.controller("con",function($scope){ $scope.arr = [1,2,3,4]; })
</script
>
</head> <body> <div ng-app="wbx" ng-controller="con"> <ul> <li ng-repeat="v in arr">
{{v | myFilter}}</li> </ul> </div> </body> </html>

2、指令directive 增強HTML 的功能

app.directive('abc',function(){
    var
json = { restrict:'ECMA', // 約束,指令能在哪用 template:'<span>abc</span>', // 模板 replace:true } return json })

– 佔位符 為原始內容站位

<ng-transclude></ng-transclude>

– transclude
1)標籤

<ng-transclude></ng-transclude>

2)屬性

transclude:true/false

e.g

app.directive('abc',function(){
    var json = {
        restrict:'E',
        template:'<ng-transclude></ng-transclude><a href="javascript:void();">X</a>',
        transclude:true // 嵌入
    }
    return json;
})