【问题标题】:Prevent AngularJS from removing data- in attributes防止 AngularJS 删除 data-in 属性
【发布时间】:2014-02-12 20:40:51
【问题描述】:

我正在使用 jCarousel 和 AngularJS 构建图像轮播。在我插入 AngularJS 之前,轮播效果很好,这似乎是因为 AngularJS 正在规范化(删除)HTML 中所有以 data-

开头的属性

归一化过程如下: - 从元素/属性的前面去除 x- 和 data-。

http://docs.angularjs.org/guide/directive

但是,jCarousel 使用它自己的以data- 开头的属性,因此 Angular 会删除这些属性并导致轮播停止工作

<div class="connected-carousels ng-scope" ng-controller="ImageCtrl">
    <div class="stage">
        <div class="carousel carousel-stage" data-jcarousel="true">

我没有使用任何 Angular data- 前缀属性名称,所以有没有办法可以阻止 Angular 对 data- 属性执行规范化过程,以便它们不被修改?或者也许有一种方法可以强制轮播代码在 Angular 规范化之前运行?

【问题讨论】:

  • 您所指的是 Angular 查找哪些属性实际上是指令的内部处理,它只是说它们将 x- 和 data- 部分从属性名称中取出,如 data-ng-bind 以查看它是否实际上匹配 ng-bind。它实际上并没有从元素中删除属性。
  • 它不会删除任何属性它只是匹配指令的语法你的代码有一些其他问题请设置 plunker 或分享更多代码
  • 好的,谢谢 = 在 jsFiddle 上工作
  • ng- 是无效的 HTML5 属性。如果你在乎

标签: javascript angularjs binding jcarousel


【解决方案1】:

通过在 HEAD 中的 Angular 库之后列出 jCarousel .js 库来解决问题。这是一个示例,显示 Angular 填充和手动填充的轮播都正常工作:

http://jsfiddle.net/rWrjw/

  <script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js'></script>
  <script type='text/javascript' src='//cdn.jsdelivr.net/jcarousel/0.3rc1/jquery.jcarousel.min.js'></script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 2022-08-08
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    相关资源
    最近更新 更多