angularjs 自定义: (过滤器,指令,服务)

本文介绍如何在 AngularJS 中创建自定义指令、过滤器和服务。包括如何限制指令的调用方式,创建用于字符串反转的过滤器,以及提供数字转换服务的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自定义指令
通过添加 restrict 属性,并设置值为 "A", 来设置指令只能通过属性的方式来调用:
var app = angular.module("myApp", []);
app.directive("runoobDirective", function() {
return {
restrict : "A",
template : "<h1>自定义指令!</h1>"
};
});

<div runoob-directive></div>

restrict 值可以是以下几种:
  • E 作为元素名使用
  • A 作为属性使用
  • C 作为类名使用
  • M 作为注释使用
restrict 默认值为 EA, 即可以通过元素名和属性名来调用指令。


自定义过滤器 (现有项目里 app 要替换成 myApp 并且放在 app.controller 外)
app.filter('reverse', function() { //可以注入依赖
return function(text) {
return text.split("").reverse().join("");
}
});

{{ msg | reverse }}

自定义服务
app.service('hexafy'function() {
    this.myFunc = function (x) {
        return x.toString(16);
    }
});

使用自定义的的服务 hexafy 将一个数字转换为16进制数:
app.controller('myCtrl'function($scope, hexafy) {
    $scope.hex = hexafy.myFunc(255);
});

在过滤器 myFormat 中使用服务 hexafy:
app.filter('myFormat',['hexafy'function(hexafy) {
    return function(x) {
        return hexafy.myFunc(x);
    };
}]);

angularjs 可以 copy对象
$scope.master = {firstName: "John", lastName: "Doe"};
$scope.user = angular.copy($scope.master);

























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值