0

我打算使用 Plunker 来帮助我测试一个指令,但首先我只是想创建一个来测试 plunker 是否工作,所以我输入了一些示例代码。你猜怎么着,基本指令不起作用,我不知道为什么。

我的指示:

app.directive('attributeDirective', function() {
  return {
    restrict: 'A',
    link: function(scope, iElement, iAttrs) {

      iElement.bind('click', function() {
        console.log('clicked attributeDirective');
      });
      iElement.bind('mouseover', function() {
        iElement.css('cursor', 'pointer');
      });
    }
  };
});

app.directive('elementDirective', function() {
  return {
    restrict: 'E',
    replace: true,
    template: '<h2>this is elementDirective</h2>',
    link: function(scope, iElement, iAttrs) {

      iElement.bind('click', function() {
        console.log('clicked elementDirective');
      });
      iElement.bind('mouseover', function() {
        iElement.css('cursor', 'pointer');
      });
    }
  };
});

我的html:

<body ng-controller="MainCtrl">
<p>Hello {{name}}!</p>

<h2 attributeDirective>Here is my attribute directive</h2>

<elementDirective></elementDirective>

</body>

http://plnkr.co/edit/H9vPhV

4

4 回答 4

3

在调用指令时,html您应该像这样替换camelcase指令名称,

<element-directive></element-directive>而不是现在的样子,

<elementDirective></elementDirective>

像你一样。

希望这可以帮助!!!

柱塞

在这里查看自定义指令

于 2015-06-11T11:31:04.477 回答
2

你应该使用

<h2 attribute-directive>Here is my attribute directive</h2>

http://plnkr.co/edit/2aGGDRw6SdYNc1joSVI1?p=preview

于 2015-06-11T11:34:52.417 回答
2

常见问题 - 您不能在 HTML 元素声明中使用驼峰式大小写。

尝试<element-directive></element-directive>

于 2015-06-11T11:34:57.520 回答
0

在您的指令中使用restrict: 'A'来引用属性。在您的指令中使用restrict: 'E'来引用元素。

找到 plunkr:“ http://plnkr.co/edit/b1cf6l?p=preview

还可以使用以下命令调用您的指令:

<h2 attribute-directive>Here is my attribute directive</h2>   
<element-directive></element-directive>
于 2015-06-11T11:31:16.137 回答