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

您缺少“foo”选择器前面的点

尝试

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

于 2013-09-19T21:45:59.070 回答
0

大多数指令都具有“链接”功能,具有不同的参数,其中之一是当前指令的 DOM 元素。像这样的东西:

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