【问题标题】:Angularjs: element.bind('click') event works but element.bind('load') event not workingAngularjs:element.bind('click') 事件有效,但 element.bind('load') 事件无效
【发布时间】:2016-08-21 18:50:37
【问题描述】:

我是 angularjs 的新手,一旦加载了 div,我就会尝试执行一些函数。

app.js

var app = angular.module('myApp',[]);

app.directive('orientable', function () {       
    return {
        link: function(scope, element, attrs) {   

            element.bind("load" , function(e){ 
                            alert('hiii1');
                  }
                });
        }
     }
});

index.html

<div ng-app="myApp" ng-controller="myCtrl">
    <p orientable>
        Hiii
     </p>
</div>

我的要求

我需要元素“p”在加载后应该与函数绑定。在我的代码警告消息中未显示,因此“p”元素未绑定到“加载”。但是,如果我将 app.js 中的代码从 'element.bind("load" , function(e){' 更改为 'element.bind("click" , function(e) { ', 'p' 元素与 click 事件绑定,因此当我点击 'p' 元素时会出现警告消息。我将如何让我的 'p' 元素绑定到 'load' 事件。

【问题讨论】:

  • 为什么不直接在链接函数中执行你想要的?为什么需要element.bind('load')
  • 这个例子只是为了测试。我有另一个例子,我需要递归调用自定义指令,其中更动态的 div 被加载。如何处理动态加载的 div?我需要'element.bind('load')'来实现这一点。添加动态 div 后,我需要调用一些函数。
  • 我想要的是“onload”功能。如何在angularjs中使用那个??

标签: javascript jquery html angularjs


【解决方案1】:
link: function(scope, element, attrs) {   

    element.bind("load" , function(e){ 
                    alert('hiii1');
          }
        });
}

https://docs.angularjs.org/api/ng/service/$compile#-link-

模板被克隆后执行。

因此,您将加载事件绑定到已加载的元素。

你想要的onLoad函数link函数。

【讨论】:

  • 嘿,我使用的代码与您发布的相同。但它不起作用
  • @SumanthUdupa 这是你的代码。我在回答中重复了它,以便清楚地表明您正在设置一个加载事件,当元素已经加载时......您想要的加载事件是链接函数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-25
  • 1970-01-01
  • 2021-11-19
  • 2018-12-30
  • 2016-11-30
  • 1970-01-01
相关资源
最近更新 更多