自定义指令
通过添加
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);