0

私は Angular を少し使用してきましたが、Backbone や jquery で行ったよりもはるかに効率的で、数行のコードを生成することができます。ただし、私は、Backbon/jquery コンポーネント/コントロールを主に作成している他の開発者と協力しています。これらは Angular で書き直すことができない複雑なコンポーネント/コントロールであるため、Angular 内からそれらを使用する方法を見つける必要があります。

特定のケースでは、ユーザーが一連のヘルプ要求システムでエントリを作成したり、バグを記録したりできるダイアログを作成するコントロールを扱っています。このコードは、多くのアプリケーションで機能しています。簡単な例を次に示します。

    <div class="foo">Help</div>

それからハンドラー。

    $(".foo").ShowHelp({project:"myproject", app:"MyApp"});

「foo」は、ダイアログの配置に使用されることに注意してください。

Angular で ng-click ディレクティブを追加して、コントローラーでクリックを処理しようとしましたが、ShowHelp は呼び出されません。これは角度コードです:

    <div class="foo" ng-click="doShowHelp()">Help</div>

私が持っているコントローラーで

   $scope.doShowHelp = function() {
        console.log("in doShowHelp");
        $(".foo").ShowHelp({project:"myproject", app:"MyApp"});
   };

コンソールにログ メッセージが表示されますが、何も起こらないようです。私が間違っていることについてのアイデア。

前もって感謝します

4

2 に答える 2

0

すべてのディレクティブのほとんどには、さまざまなパラメーターを持つ関数「リンク」があり、そのうちの 1 つは現在のディレクティブの DOM 要素です。このようなもの:

link: function(scope, element, attrs) {
  element.ShowHelp({project:"myproject", app:"MyApp"});
  ...
}
于 2013-09-20T09:42:46.913 に答える
0

「foo」セレクターの前にドットがありません

試す

$(".foo").ShowHelp({project:"myproject", app:"MyApp"});

于 2013-09-19T21:45:59.070 に答える