これは通常AngularJSを使用する方法ではないことを私は知っていますが、私が達成したいことはAngularJSで実行可能かどうか疑問に思いました。これが推奨される方法ではない場合、これを達成するためのヒントを教えてください。私はWebプログラミングの分野で新しいことを考慮してください。
そのため、私のプロジェクトでは、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>
とにかく、これはAngularJSを使用してSVGウィジェットでデータバインディングを実現するためですか?これはAngularJSの目的ではないと思い始めています。この場合、これを行う方法について教えてください。
アップデート:
みんなあなたの答えに感謝します!要件は、ウィジェットがユーザー入力を受け入れることであり、(モジュール性の目的で)htmlファイルに配置されないようにする必要があります。したがって、今のところ、ディレクティブが主な選択のようです。リンクメソッドでは、RaphaelJSを使用してウィジェットを描画し、編集可能なオブジェクトを描画することもできますが、この方法では、AngularJSバインディングメカニズムを適切に使用せず、ウォッチとイベントハンドラーだけになります...これは私には面倒に思えます。何らかの方法でディレクティブのtemplateプロパティにSVGタグを配置し、テンプレートで入札を行うことができればよかったのですが、それはサポートされていないようです。
これについて他のアイデアはありますか?
ところで、プロパティとjQueryで取得したHTML要素(テキストボックスなど)の間にプログラムでバインディングを適用する方法はありますか?
よろしく