我正在 Codecademy 上进行 feedster 练习,在让按钮显示在 View 中时遇到问题,这一定是我的语法问题。
原始代码不起作用,因为将函数命名为内联
app.directive('plusOne',function(){
return {
restrict: 'E',
scope: {},
templateUrl: 'js/directives/plusOne.html',
link like(): function(scope, element, attrs) {
scope.like = function(){
element.toggleClass('btn-like');
}; // internal function
}; // link like function
}; // return
}); // directive
在线搜索只能得到编译和链接理论的解释。 ""但是有必要在“链接”级别将函数命名为内联吗?
工作代码
app.directive('plusOne',function(){
return {
restrict: 'E',
scope: {},
templateUrl: 'js/directives/plusOne.html',
link: function(scope,element,attrs) {
scope.like = function(){
element.toggleClass('btn-like')
}
}
};
});
显然这只是该问题的措辞问题。它只需要一个匿名函数。
最佳答案
命名内联函数的语法是:
link: function like(scope, element, attrs) {
话虽如此,此时您实际上无法用它做任何事情,您可以/应该考虑使用类似的东西来分别清楚地定义您的链接函数和指令定义:
app.directive('plusOne',function(){
function link(scope, element, attrs) {
scope.like = function(){
element.toggleClass('btn-like');
}; // internal function
}
return {
restrict: 'E',
scope: {},
templateUrl: 'js/directives/plusOne.html',
link: link
}; // return
}); // directive
关于javascript - 有必要在 Angular 指令链接内命名函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30388103/