我的Angular js指令不适用于append div

时间:2016-04-06 11:02:02

标签: angularjs

我正在学习角度。所以试图构建我的第一个与DOM交互但不起作用的指令。请告诉我我在代码中错过了什么。这是代码。

-1 (unstarted)
0 (ended)
1 (playing)
2 (paused)
3 (buffering)
5 (video cued)

我的js小提琴链接https://jsfiddle.net/tridip/2fooy06c/

4 个答案:

答案 0 :(得分:1)

你错过了这个链接'属性:

app.directive('myDirective',function(){
     return {
        link:  function(scope, element, attrs){
          element.click(function(){
               alert('hello');
               element.parent().find('.main').append('<div>Some text</div>');
           })
           }
      }
})

答案 1 :(得分:1)

请更改您的代码如下,它将起作用。元素中没有click这样的函数。请查看此文档https://docs.angularjs.org/api/ng/function/angular.element here

另外,请不要忘记在指令中包含typelink属性。 Type用于表示您正在创建的指令类型。有关详细信息,请参阅here

app.directive('myDirective',function(){
 return {
   type: "A",
   link: function(scope, element, attrs) {

     element.on("click", function() {
       alert('hello');
       element.parent().append('<div>Some text</div>');
     });

   }

 }
});

有关详细信息,请参阅此plnkr示例https://plnkr.co/edit/CYyOKzjR1kBR3U0tG3jv?p=preview

答案 2 :(得分:0)

element.click不是一个函数。你需要使用.bind

附加事件
var myApp = angular.module('myApp',[]);

myApp.directive('myDirective',function(){
     return {
        link:  function(scope, element, attrs){
          element.bind('click',function(){
               alert('hello');
               element.parent().append('<div>Some text</div>');
           })
           }
      }
})

DEMO:http://jsfiddle.net/Lvc0u55v/2018/

答案 3 :(得分:0)

您需要绑定点击功能。 见demo

app.directive('myDirective', function () {
return {
    link: function ($scope, element, attrs) {
        element.bind('click', function () {
           alert('hello');
           element.parent().append('<div>Some text</div>');
        });
    }
  };
});