在AngularJS v1.4.8中,将匿名函数作为参数传递给ng-init

时间:2016-09-23 16:22:01

标签: javascript angularjs

尝试通过ng-init存储对匿名函数的调用。 即

<div class="container-fluid" ng-app="AVF"  ng-controller="ConfigController"    ng-init="RegisterInitFunction(function() { $scope.GetData(); })" >

在我的控制器中

   $scope.InitFunction = null;
   $scope.RegisterInitFunction = function(init) {
     $scope.InitFunction=new Function(init)();

    }
    $scope.GetData = function() {
      $scope.DoSomething();
    }

我最终收到语法错误 angular.min.js:107错误:[$ parse:syntax]

这可能吗?

1 个答案:

答案 0 :(得分:0)

对于任何可能有这个问题的人来说,将匿名函数放在引号中并使用eval就可以解决我的困境,

... ng-init =“RegisterInitFunction('function(){$ scope.GetData();}');”

        $scope.InitFunction = null;
    $scope.RegisterInitFunction = function(init) {
        $scope.InitFunction = eval('(' + init + ')');
    }