如何使用 "this" 声明 Angular 指令
How to declare an Angular directive using "this"
我有以下代码:
http://jsbin.com/seveba/1/edit
或 TL;DR
app.directive("enter", function() {
return function(scope, element) {
element.bind("mouseenter", function() {
console.log("I'm inside of you!");
});
};
});
我理解这背后的主要逻辑,但我记得学习如何编写这样的指令:
app.directive('directiveName', function() {
link: function(scope, element, attrs) {
// directive code goes here
}
});
egghead上的代码好用吗?我知道 link 函数是在 angular 编译 dom 之后执行的,但这并不能帮助我弄清楚哪种方式更好。此外,我已经开始使用控制器作为语法,这让我停止在控制器上使用 $scope 通过 "this" 将变量分配给对象。我也可以用指令来做吗?或者它们是完全不同的东西?
The below syntax would be proper for creating a generic directive.
实施:
<div directive-name></div>
代码:
app.directive('directiveName', [function() {
return {
restrict: 'A',
link: function(scope, elem, attrs) {
elem.bind('click', function() {
alert("clicked!");
});
}
}
}]);
我猜你更想找这样的东西
return {
restrict: 'A',
controller: 'SomeController',
controllerAs: 'ctrl',
template: '{{ctrl.foo}}'
link: function(){}
};
从你的问题来看,无论哪种方式都可以声明指令,我更喜欢 return 对象,它对我之后要接触代码的人来说更具可读性和自我解释性
我有以下代码: http://jsbin.com/seveba/1/edit
或 TL;DR
app.directive("enter", function() {
return function(scope, element) {
element.bind("mouseenter", function() {
console.log("I'm inside of you!");
});
};
});
我理解这背后的主要逻辑,但我记得学习如何编写这样的指令:
app.directive('directiveName', function() {
link: function(scope, element, attrs) {
// directive code goes here
}
});
egghead上的代码好用吗?我知道 link 函数是在 angular 编译 dom 之后执行的,但这并不能帮助我弄清楚哪种方式更好。此外,我已经开始使用控制器作为语法,这让我停止在控制器上使用 $scope 通过 "this" 将变量分配给对象。我也可以用指令来做吗?或者它们是完全不同的东西?
The below syntax would be proper for creating a generic directive.
实施:
<div directive-name></div>
代码:
app.directive('directiveName', [function() {
return {
restrict: 'A',
link: function(scope, elem, attrs) {
elem.bind('click', function() {
alert("clicked!");
});
}
}
}]);
我猜你更想找这样的东西
return {
restrict: 'A',
controller: 'SomeController',
controllerAs: 'ctrl',
template: '{{ctrl.foo}}'
link: function(){}
};
从你的问题来看,无论哪种方式都可以声明指令,我更喜欢 return 对象,它对我之后要接触代码的人来说更具可读性和自我解释性