我知道您可以通过以下方式绑定指令:
HTML:
<mydirective />
JS:
app.directive('mydirective', function () {})
但是我看到了this SO回答。 所以可以绑定像?
这样的指令HTML:
<input ng-something="foo()">
JS:
app.directive('ngSomething', function () {})
或者我应该在指令中始终有template:
,以便我注入代码。我的目的是在现有输入上绑定ng-keydown
:
这不起作用:
<input type="text", placeholder="Search stuff" ng-model="searchBar" ng-keydown="dosomthg()">
所以我正在尝试基于以上答案:
<input type="text", placeholder="Search stuff" ng-model="searchBar" ngSearchbar="dosomthg()">
答案 0 :(得分:1)
应该[我]总是有模板吗?
没有。除了修改DOM结构外,指令还可以提供纯粹的行为。
所以可以绑定一个指令,如:my-directive =“someFunction()”
是。在最简单的情况下,它就像这样PLNKR。对于您的指令,您可以将委托传递给父作用域甚至匿名角表达式的函数。看看,玩一下吧!如果您想了解更多信息,请尝试阅读角度docs。
答案 1 :(得分:0)
您不必总是要包含模板。但是如果要包含模板,可以这样做:
<强>指令强>:
app.directive('ngSomething', function () {
return {
restrict: 'E', // means element
template: '<input type="text", placeholder="Search stuff" ng-model="searchBar" ng-keydown="dosomthg()">'
}
});
<强> HTML 强>:
<ng-something></ng-something>
<强> dosomthg()强>:
$scope.dosomthg = function() {
$scope.name = 'mate';
};