绑定指令的替代方法

时间:2013-11-28 22:52:58

标签: angularjs angularjs-directive

我知道您可以通过以下方式绑定指令:

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()">

2 个答案:

答案 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';
};

http://plnkr.co/edit/nV57jx?p=preview