You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Angular按钮重复调用指定JS脚本

解决方案

步骤1:封装脚本逻辑为可调用函数

修改products/products_list.js,将原本页面加载时自动执行的代码包装成一个全局函数,同时保留页面加载时的初始执行:

// products/products_list.js
function refreshProductList() {
  // 这里放入原本脚本中所有需要执行的逻辑
  // 比如初始化产品列表、绑定交互事件、更新DOM等操作
}

// 页面加载时先执行一次,保持原有功能
refreshProductList();

步骤2:在按钮点击事件中调用该函数

因为你的按钮使用AngularJS的ng-click绑定了packageCtrl.add(rlCtrl),直接在控制器的add方法里添加函数调用即可:

// 对应packageCtrl控制器的代码
angular.module('yourAppName').controller('packageCtrl', function() {
  var vm = this;

  vm.add = function(rlCtrl) {
    // 保留原本add方法的业务逻辑
    // ...

    // 调用脚本中的刷新函数
    refreshProductList();
  };

  vm.disableAdd = function() {
    // 保留原本的禁用判断逻辑
    // ...
  };
});

备选方案(无需修改控制器时)

如果暂时无法修改控制器代码,可以直接在ng-click指令中追加函数调用:

<div class="col-md-1 form-group"><br/>
  <input type="button" class="btn btn-primary" value="Add Button" 
         ng-click="packageCtrl.add(rlCtrl); refreshProductList()" 
         ng-disabled="packageCtrl.disableAdd()"/>
</div>

注意事项

不要通过动态创建<script>标签重新加载脚本,这种方式会导致代码重复执行、全局变量污染,甚至引发内存泄漏,属于不规范的实现方式。封装函数调用是更可靠、可维护的方案。

内容的提问来源于stack exchange,提问作者Willingtolearn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 13:05:17