Javascript 扩展“角度材质”指令并将类添加到子节点
我正试图解决Angular Material for autocomplete中的一个已知错误,在这个错误中,向autocomplete添加任何类都不会被带入md输入容器子元素。跟踪bug。按照angular wiki上的一些基本说明,我最终找到了解决这个问题的方法,我认为这会将正确的md口音类添加到我的所有输入容器中Javascript 扩展“角度材质”指令并将类添加到子节点,javascript,angularjs,angular-material,custom-directive,Javascript,Angularjs,Angular Material,Custom Directive,我正试图解决Angular Material for autocomplete中的一个已知错误,在这个错误中,向autocomplete添加任何类都不会被带入md输入容器子元素。跟踪bug。按照angular wiki上的一些基本说明,我最终找到了解决这个问题的方法,我认为这会将正确的md口音类添加到我的所有输入容器中 app.directive("mdAutocomplete", ["$window", function ($window) { "use strict";
app.directive("mdAutocomplete", ["$window", function ($window) {
"use strict";
return {
link: function (scope) {
var containers = $window.document.getElementsByTagName("md-input-container");
console.log(containers);
console.log(containers.length);
for(var i = 0; i < containers.length; i++){
angular.element(containers[i]).addClass("md-accent");
}
}
};
}]);
app.directive(“mdAutocomplete”、[“$window”、函数($window){
“严格使用”;
返回{
链接:功能(范围){
var containers=$window.document.getElementsByTagName(“md输入容器”);
控制台日志(容器);
控制台.日志(容器.长度);
对于(var i=0;i
有了它,我可以清楚地在调试程序中看到指令扩展正在运行的输出,并在页面上查找元素。它发现了以下两个方面:
0:md-input-container.md-icon-float.md-accent
1:md输入容器.ng范围
我不明白的是,为什么它会在第一个类中添加md口音,而不是在第二个类中添加?第一个md输入容器本身位于页面上,第二个容器位于md自动完成内部。我对angular还是一个新手,正在试图弄清楚何时会执行这个扩展。为什么不能同时附加到数组中的两个元素上呢?我遗漏了什么?因为这只是解决了一个已知的bug,而且我知道我的站点的设计,所以我希望所有md输入容器上都有md重音类。以下是我为解决这个问题所做的工作:
.directive("mdInputContainer", [function () {
"use strict";
return {
link: function (scope, element) {
angular.element(element).addClass("md-accent");
}
};
}]);
我没有尝试修改md autocomplete的子md输入容器,而是发现更容易扩展md输入容器本身,使用link函数的第二个参数添加类。现在,我可以看到包装在输入容器中的所有输入的一致性