Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angularJS中的调用函数_Angularjs_Html_Function - Fatal编程技术网

angularJS中的调用函数

angularJS中的调用函数,angularjs,html,function,Angularjs,Html,Function,我需要帮助-如何在区域成功中从AngularJS调用myFunction var app = angular.module('app', []); app.controller("MyController", function($scope, $http) { $scope.myFunction = function() { alert("HI"); }; $http.get('myWS.asmx/myService?callback=?', { params

我需要帮助-如何在区域成功中从AngularJS调用
myFunction

var app = angular.module('app', []);
app.controller("MyController", function($scope, $http) {

  $scope.myFunction = function() {
    alert("HI");
  };

  $http.get('myWS.asmx/myService?callback=?', {
      params: {
        userName: 'test',
        procedureName: "EXECUTE myProcedure"
      }
    })
    .success(
      function(data) {
        //CALL MY FUNCTION HERE!
      })
    .error(
      function() {
        alert("ERROR");
      }
    );
});
我试了好几次,但什么也没有;有什么解决方案或例子吗

 $http.get('myWS.asmx/myService?callback=?', {
    params: {
      userName: 'test',
      procedureName: "EXECUTE myProcedure"
    }
  })
  .success(
    function(data) {
      $scope.myFunction();
    })
  .error(
    function() {
      alert("ERROR");
    }
  );

基本上。

您不需要$scope,只需使用它,并在回调函数的作用域之外创建一个实例:

var app = angular.module('app', []);
app.controller("MyController", function($http) {

  var scope = this;

  this.myFunction = function() {
    alert("HI");
  };

  $http.get('myWS.asmx/myService?callback=?', {
      params: {
        userName: 'test',
        procedureName: "EXECUTE myProcedure"
      }
    })
    .then(
      function(data) {
        scope.myFunction();
      },
      function() {
        alert("ERROR");
      }
    );
});
成功和错误在较新的Angular版本中不起作用,您需要。然后,由于内置了两个函数。

以下是示例

var app = angular.module('app', []);
            app.controller("MyController", function ($scope, $http) {




                $scope.myFunction = function () {
                    alert("HI");
                };



        $scope.myFunctionLoadData = function () {
                    $http.get('myWS.asmx/myService?callback=?', {
                    params: {
                        userName: 'test',
                        procedureName: "EXECUTE myProcedure"
                    }
                })
                .success(
                    function (data) {
                        $scope.myFunction();
                    })
                .error(
                    function () {
                        alert("ERROR");
                    }
                );
                };


                $scope.myFunctionLoadData();


            });

请编辑并更正您的问题(重复),否则我打赌它将很快关闭。并提供一些上下文,请参见
$scope.myFunction()
是否应该工作?你确定你的
.get
甚至启动了
.success
?@Goldenowner.success$scope.myFunction()没有工作!你有什么错误吗?我已经更新了我的答案,使用。然后代替success和errornow工作函数,但不工作从http接收数据!你确定数据回来了吗?在我上面的例子中,成功和错误都起作用,只是我不知道如何调用任何函数。你想更新什么?-1:不使用$scope是非常不合理的,可能会导致问题$范围存在是有原因的,请使用它。另一个在作用域上定义函数并相应调用它的解决方案是正确的。@Nathan John Papa建议将$scope用作服务,但当您不需要$scope提供的任何功能时,controllerAs语法是正确的,因为它少了一个依赖项-@paris0000这是正确的。如果它不起作用,那么你就遇到了另一个问题。顺便说一句,如果缩小,这个问题将被打破:使用控制器语法。。。controller(“MyController”[“$scope”,“$http”,函数($scope,$http){…}]);http请求肯定成功了吗?(也就是说,你可以在成功功能中设置一个警报,它就会触发)@Nathan是的,我设置了警报!我已经创建了一个小提琴,上面的代码可以工作。。。您是否检查了控制台中的其他错误?