angularjs - 如何从Angular范围中排除元素?

标签 angularjs d3.js raphael angularjs-scope

我的前提是错误的。虽然AngularJS肯定会减慢速度,但这并不是由于我在下面描述的问题。但是,正是flim回答了我的问题-如何从Angular范围中排除元素-能够证明这一点。

我正在建立一个站点,该站点使用d3 + Raphael从AJAX提取的数据生成图形。这会导致DOM中出现大量SVG或VML元素,具体取决于用户选择呈现哪种图表类型(例如,饼图很少,线形图和堆积条形图有很多)。

我遇到了一个问题,其中在AngularJS控制的文本字段中输入文本会使Firefox爬行。我输入了几个字符,然后等待2-3秒让他们突然出现,然后再输入几个字符,依此类推。(Chrome似乎可以更好地解决这个问题。)

当页面上没有图形(用户没有提供足够的数据来生成一个图形)时,可以编辑这些文本字段的内容。我认为AngularJS在尝试更新DOM时会遇到麻烦,并且有数百个SVG或VML元素需要浏览。

但是,该图不包含AngularJS自己需要担心的任何内容。 (但是,在图形之前和之后都需要注意的UI元素。)

我可以想到两种解决方案:

  • 将图形的DIV放在AngularJS Controller 之外,并使用CSS将其放置在实际需要的位置
  • 告诉AngularJS-不用理会图表的DIV;在保持 View 和模型同步时跳过它

  • 第二种选择对我来说似乎更可取,因为它使文档布局保持理智/语义。有什么办法吗? (或者我没有想到过的甚至更好的解决方案?)

    最佳答案

    您是否尝试过ng-non-bindable? http://docs.angularjs.org/api/ng.directive:ngNonBindable

    <ANY ng-non-bindable>
       ...
    </ANY>
    

    关于angularjs - 如何从Angular范围中排除元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17074705/

    相关文章:

    unit-testing - 如何在 Jasmine 测试中模拟 Angular $resource

    javascript - 将 SVG 元素旋转 360 度没有任何作用

    javascript - 在 dc.js 中调整 SVG 的大小

    html - IE 9 中的 Rapheal 饼图渲染问题

    javascript - RaphaelJS 似乎缺乏形状层次结构

    javascript - Raphaël - HTML 之上的 SVG

    javascript - 使用 angularjs 登录的 ionic 身份验证

    javascript - 单独的 Controller AngularJS

    javascript - 自动放置流程图形状的算法

    angularjs - 为什么设置$location.path时需要scope.$apply