AngularJS从嵌套函数中设置Value为$scope

AngularJS Set Value to $scope from Nested Function

本文关键字:Value scope 设置 嵌套 函数 AngularJS      更新时间:2023-09-26

我试图从函数内的函数中获取值:

控制器

  $scope.vm = {};
  function myFunc(){
    $scope.vm.hello = 'Hello';
    function myFunction(){
      $scope.vm.world = 'world';
    }
  }
  myFunc();
<<p> 视图/strong>
<p>{{vm.hello}} {{vm.world}}</p>

这是我的Plunk。

如何让它显示"Hello world"?

我假设您正在尝试实现所谓的"关闭"。如果是,将控制器修改为:

app.controller('MainCtrl', function($scope) {
  $scope.vm = {};
  function myFunc(){
    $scope.vm.hello = 'Hello';
    return function () {
      $scope.vm.world = 'world';
    }
  }
  var hello = myFunc(), // invokes outer function
      world = hello();  // invokes inner function
  console.log($scope.vm);      
});

在您的代码中,内部函数myFunction()不能在myFunc()方法之外调用,因为它的作用域由这个外部方法限定。当然,你可以直接在外部方法中调用它,或者更好的方法是直接调用内部函数:

  function myFunc(){
    $scope.vm.hello = 'Hello';
    (function myFunction(){
      $scope.vm.world = 'world';
    })();
  }