我有一些遗留的jQuery代码,如下所示:
$(document).on('replace', 'div', function (e, new_path, original_path) {
// do stuff here
});
Run Code Online (Sandbox Code Playgroud)
我试图弄清楚如何将此代码转换为AngularJS一致的方法.当index.html被加载时,上面的代码正在运行.我正在尝试将初始化代码移动到指令中.目前,我正在调用如下所示的指令:
<body initialize-page>
... content goes here
</body>
Run Code Online (Sandbox Code Playgroud)
我的指令如下所示:
.directive('initializePage', function ($document) {
return {
restrict: 'A',
link: function (element) {
console.log('initialization code goes here.');
}
};
})
Run Code Online (Sandbox Code Playgroud)
但是,我不知道AngularJS相当于'on'是什么.如果可能的话,我想摆脱使用jQuery.
谢谢!
Angular包含一个调用jqLite的jquery子集.jqlite版本.on有这些约束:
on() - Does not support namespaces, selectors or eventData
Run Code Online (Sandbox Code Playgroud)
因此,我们可以使用Angular on,但与jQuery中的略有不同(即没有选择器).
指令的链接函数的第二个参数是指令应用于的元素.所以,虽然我们不能指定一个选择on,我们可以使用find的element参数,让您的DIV.然后我们可以链接on到那个结果.这给了我们以下链接功能:
link: function (scope,element,attrs) {
element.find('div').on('replace', function (event) {
console.log("got event: ",event);
});
};
Run Code Online (Sandbox Code Playgroud)
这是一个演示小提琴,其中我使用click而不是replace,因为它更容易显示.
| 归档时间: |
|
| 查看次数: |
4426 次 |
| 最近记录: |