我正在使用名为Swiper的第三方库。 idangero.us.swiper.js似乎不能很好地处理DOM中的元素指令,因为它假定“幻灯片”元素将作为“包装器”元素的直接子元素。从DOM中删除指令
从idangerous.swiper.js:
for (var i = 0; i < _this.wrapper.childNodes.length; i++) {
if (_this.wrapper.childNodes[i].className) {
var _className = _this.wrapper.childNodes[i].className;
var _slideClasses = _className.split(/\s+/);
for (var j = 0; j < _slideClasses.length; j++) {
if (_slideClasses[j] === params.slideClass) {
_this.slides.push(_this.wrapper.childNodes[i]);
}
}
}
}
有效DOM:
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide">
Slide 1
</div>
<div class="swiper-slide">
Slide 2
</div>
</div>
无效DOM:
<div class="swiper-container">
<div class="swiper-wrapper">
<my-custom-slide>
<div class="swiper-slide">
Slide 1
</div>
</my-custom-slide>
<my-custom-slide>
<div class="swiper-slide">
Slide 2
</div>
</my-custom-slide>
</div>
</div>
我想创建一个myCustomSlide
直接为了减少锅炉板,集中一些css等。为此,看起来我需要从DOM中排除我的指令元素,因此实际的“swiper-slide”元素将在_this.wrapper.childNodes
中。我看着一个directive's replace functionality。它似乎完全符合我的要求。但是,它似乎已被弃用。所以我不想使用它。
- 不:现在我正在考虑
按优先顺序 -
REPLACE([!(已废弃),即2.0版,将在下一主要版本中删除)使用我的自定义幻灯片指令
- 提交增强idangerous.swiper.js以支持此用例的拉取请求
我更喜欢第三个选项,它是一个非弃用的Angular方法,用于从DOM中删除my-custom-slide元素。这是否存在?如果它不存在,是否有人可以解释或指向我关于替代功能被弃用的原因的文档?
可能的重复[为什么在AngularJS中不推荐使用replace?](http://stackoverflow.com/questions/24194972/why-is-replace-deprecated-in-angularjs) – JoseM 2014-10-03 21:19:46
提到了我的用例并引用了这个SO问题在弃用替换功能的角度提交上:https://github.com/angular/angular.js/commit/eec6394a342fb92fba5270eee11c83f1d895e9fb – 2014-10-08 03:43:18