【问题标题】:onclick event not invoking a javascript functiononclick 事件不调用 javascript 函数
【发布时间】:2021-05-27 19:10:12
【问题描述】:

控制器中的以下代码和函数 getSug()。所有这些代码都在角度控制器内。 onclick 事件不会调用 getSug() 函数。如何调用它?

var vm = this;
var quant ="linkClick";
vm.link = '<a onclick="'+vm.getSug();+'">' + quant + '</a>';

function getSug(){}

html:  <table>
            <tr>
              <th>link</th>
              
            </tr>
            <tr>
              <td ng-bind-html="vm.link"></td>
             
            </tr>
          </table>

【问题讨论】:

  • 为什么你需要以这种方式构建锚元素,正如@Kinglish在AngularJs中提到的你应该使用ng-click
  • 只是因为这些链接是使用地图构建的,并且使用 API 的结果在控制器代码中动态形成了多个链接。我没有在这里显示以保持简单

标签: javascript html angularjs


【解决方案1】:

在angularjs中,onclick是ng-click

另外,您不会以 Angular 的方式编写您的 html。而是:

<table>
 <tr>
  <th>link</th>
 </tr>
 <tr>
  <td>
    <a ng-if='quant' ng-click="getSug()" ng-bind-html="quant"></a> 
  </td>
 </tr>
</table>

然后您的函数将存在于与该页面关联的控制器中:

$scope.getSug = function() {
   // code
}

【讨论】:

  • 我需要通过控制器代码以我声明变量的方式调用它,而不是这样。
【解决方案2】:

函数getSug 在第三行被调用。

您只需在定义行调用它,而不是 onclick 函数。

使用

var vm = this;
var quant ="linkClick";
vm.link = '<a onclick="'+"vm.getSug()"+'">' + quant + '</a>';

function getSug(){}

【讨论】:

    猜你喜欢
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    相关资源
    最近更新 更多