Javascript函数不影响角度模板
我已经建立了一个简单的角度项目,我有一个基础模板。这个基本模板导入所有必要的库,并在其中运行一个简单的jQuery函数。大概是这样的:Javascript函数不影响角度模板,javascript,jquery,angularjs,dom,Javascript,Jquery,Angularjs,Dom,我已经建立了一个简单的角度项目,我有一个基础模板。这个基本模板导入所有必要的库,并在其中运行一个简单的jQuery函数。大概是这样的: <html ng-app='myApp'> <body> <div><input type="text"></div> <div ng-view></div> // Imports <script>
<html ng-app='myApp'>
<body>
<div><input type="text"></div>
<div ng-view></div>
// Imports
<script>
(function() {
$('input').each(function() {
$(this).addClass('doSomething');
});
})();
</script>
</body>
</html>
//进口
(功能(){
$('input')。每个(函数(){
$(this.addClass('doSomething');
});
})();
因此,基本上,该函数向DOM中的所有输入元素添加一个类。ng视图之外的第一个输入元素受此函数影响
但是,假设我的ng视图模板中有输入元素,这些元素奇怪地不受函数的影响。为什么呢?我的jQuery函数似乎无法访问角度模板的DOM
有解决办法吗?运行可能影响角度模板的常用函数的理想方法是什么
谢谢。模板并没有以某种方式隐式地“包含”;它们是由动态的角度代码构造的(并且可能基于非同步事件,如触发主页onload事件后发生的http请求)。因此,除非您以某种方式与angular合作,否则无法保证DOM是由angular构建的
实现这一点的“正确”方法可能是为添加类的“输入”标记编写一个角度指令(而不是像上面那样使用jQuery);当然,这是添加事件侦听器等的“正确”方法。为什么不执行(或搜索,如果已经存在)一个指令?向每个输入添加一个类似乎应该使用一个简单的CSS类:
input{your_code}
@Maxime为什么您更喜欢使用元素名作为选择器而不是类?@1252748因为如果您必须使用一些javascript在任何地方插入该类,为什么不使用css选择器呢?addClass的事情显然就是为了解决这个问题。真正的函数做了很多其他的事情,我不想为这个问题额外包含15行以上的代码。