how hacer else como angularjs d3.js raphael angularjs-scope

angularjs - hacer - ¿cómo puedo excluir un elemento de un alcance angular?



if ng angular (1)

¿Has probado ng-no-bindable? http://docs.angularjs.org/api/ng.directive:ngNonBindable

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

mi premisa estaba mal. mientras que AngularJS estaba desacelerando las cosas, no era debido al problema que describo a continuación. sin embargo, fue la respuesta de Flim a mi pregunta - cómo excluir un elemento de un alcance angular - que fue capaz de demostrarlo.

Estoy construyendo un sitio que genera gráficos usando d3 + Raphael de datos recuperados AJAX. esto da como resultado MUCHOS elementos SVG o VML en el DOM, dependiendo del tipo de gráfico que el usuario elija para representar (pie tiene pocos, línea y barra apilada tienen muchos, por ejemplo).

Me encuentro con un problema donde ingresar texto en campos de texto controlados por AngularJS lleva a Firefox a un rastreo. Escribo algunos caracteres, luego espero 2-3 segundos para que aparezcan de repente, luego escribo algunos más, etc. (Chrome parece manejar esto un poco mejor).

cuando no hay un gráfico en la página (el usuario no ha proporcionado suficientes datos para generar uno), la edición de los contenidos de estos campos de texto está bien. Supongo que AngularJS tiene problemas cuando intenta actualizar el DOM y hay cientos de elementos SVG o VML que tiene que revisar.

el gráfico, sin embargo, no contiene nada con lo que AngularJS deba preocuparse. (Sin embargo, hay elementos de la interfaz de usuario tanto antes como después del gráfico al que DEBE prestarle atención).

Puedo pensar en dos soluciones:

  1. coloque el DIV del gráfico fuera del controlador AngularJS y use CSS para ubicarlo donde realmente se lo quiere

  2. decirle a AngularJS, de alguna manera, que no tenga en cuenta el DIV del gráfico; omitir al mantener la vista y el modelo sincronizados

la segunda opción me parece preferible, ya que mantiene el diseño del documento en buen estado / semántico. hay alguna forma de hacer esto? (¿o alguna solución aún mejor que no haya pensado?)