使用ng-click来调用两个不同的函数
问题出现的原因是在使用ng-click调用两个不同的函数时,如果函数search()依赖于函数match()返回的值,就会出现问题。解决方法是使用回调函数的方式来调用函数match()。
在控制器中,可以这样做:
$scope.match = function(cb){ //做一些操作并返回值 var x = 10; x = x + 10; cb(x); }; $scope.search = function(){ //调用match()函数 $scope.match(function(value){ myCalc = value; }); };
以上代码中,通过在search()函数中调用match()函数,并传入一个回调函数作为参数。在match()函数内部,进行一些操作并将结果通过回调函数传递出去。在search()函数中,通过回调函数获取到match()函数返回的值,并赋值给myCalc变量。
这样就实现了使用ng-click调用两个不同函数,并且保证了search()函数能够获取到match()函数返回的值。
原因:使用ng-click调用两个不同的函数时,只能调用一个函数,无法同时调用两个函数。
解决方法:可以在search()函数内部添加一个回调函数match(),这样就可以在调用search()函数时,间接地调用match()函数。
具体代码如下:
$scope.search = function() {
// 执行搜索功能
// ...
// 调用回调函数
$scope.match();
};
$scope.match = function() {
// 执行匹配功能
// ...
};
通过以上代码,我们可以在点击按钮时调用search()函数,然后在search()函数内部调用match()函数,实现同时调用两个不同的函数的效果。