html5函数自调用,如何使用angularjs从html中调用自定义函数?

本文探讨了在 AngularJS 应用中如何组织控制器内的公共和私有方法,以及如何在不直接依赖 $scope 的情况下访问作用域变量。通过将私有方法移出控制器,并使用函数参数传递需要的变量,可以保持代码的模块化,同时避免不必要的作用域污染。然而,这也引入了一定的复杂性,需要权衡利弊。示例展示了如何通过包装函数来调用私有方法,从而在保持控制器简洁的同时,实现对 $scope 变量的访问。
摘要由CSDN通过智能技术生成

angular.module('testApp', [])

.controller('ctrl', ctrl);

function ctrl($scope) {

/* -- Public Properties & Methods -- */

$scope.test = test;

/* -- Private Properties & Methods -- */

function test(value) {

console.log(value);

}

}

因为我的代码是在IIFE,你其实可以有一个的function test任何地方内部的块,而不是控制器功能里面:

angular.module('testApp', [])

.controller('ctrl', ctrl);

function ctrl($scope) {

/* -- Public Properties & Methods -- */

$scope.test = test;

}

/* -- Private Properties & Methods -- */

function test(value) {

console.log(value);

}

我刚做了一个按照第二种方式考虑这样做。相当多的时候我们创建了我们希望绑定到DOM的变量:$scope.showOptions。如果我们拥有控制器以外的功能,我们将无法访问此$scope.showOptions,因此您将难以进行询问。通过函数参数请求变量/作用域,可以轻松解决此问题。或者创建一个小包装函数,将派发出来(几乎像双派遣)。

$scope.test = function test() { testImpl($scope.showOptions); };

function testImpl(showOptions) {

console.log(showOptions);

}

这将让你保持所有主繁重的控制器之外,但也引入了复杂性的一个新层,其中一个我知道我一定能做到没有。

所以选择是你的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值