AngularJS, как связать данные с виджетом SVG

Я знаю, что обычно это не тот способ использования AngularJS, но мне было интересно, можно ли добиться того, чего я хочу, с помощью AngularJS. Если это не рекомендуемый способ, не могли бы вы дать подсказки о том, как этого добиться? Пожалуйста, учтите, что я новичок в области веб-программирования.

Итак, в моем проекте я рисую с помощью SVG и RaphaelJS несколько виджетов на холсте, который помещается в div «держатель». Я пытаюсь связать эти виджеты с данными с помощью AngularJS, в основном каждый виджет связан с объектом в CustomController. Как я могу получить доступ к CustomController при инициализации своих виджетов?

<html lang="en" style="height: 100%;"  ng-app="myApp">
<head>
  <script type="text/javascript"">
    $(document).ready(function () {
      var canvas = Raphael('holder', '800', '600');
      var widget1 = new Widget1(params);
      // initialize widgets here, that I need to bind to data using AngularJS
      // I am not able to access the CustomController here when drawing my widgets
    });
  </script>
</head>
<body>
  <div id="holder" ng-controller="CustomController">

  </div>
</body>
</html>

Это в любом случае для привязки данных к виджетам SVG с использованием AngularJS? Я начинаю думать, что это не цель AngularJS... в этом случае не могли бы вы посоветовать мне, как это сделать?

ОБНОВЛЕНИЕ:

Ребята, большое спасибо за ваши ответы! Требование состоит в том, чтобы виджет принимал пользовательский ввод, и я не хочу, чтобы он помещался в html-файл (в целях модульности). Таким образом, директива кажется основным выбором на данный момент. В методе ссылки я бы рисовал виджет с помощью RaphaelJS, и я также могу рисовать редактируемые объекты, но таким образом я бы не использовал должным образом механизм привязки AngularJS, это были бы просто часы и обработчики событий... что кажется мне грязным.Было бы неплохо, если бы я мог каким-то образом поместить теги SVG в свойство шаблона директивы и выполнить ожидание в шаблоне, но, похоже, это не поддерживается.

У вас есть другие идеи на этот счет?

Кстати, есть ли способ программно применить привязки между свойством и элементом HTML (например, текстовым полем), полученным с помощью jQuery?

С уважением

9
задан Paul Chiritescu 25 May 2012 в 09:25
поделиться