AngularJS:$Scope函数如何返回另一个函数

AngularJS:$Scope函数如何返回另一个函数,angularjs,Angularjs,我正在学习英语。因此,阅读了许多文章和文章的角度。这次我不理解代码中的某个特定区域。 代码取自 FROUTSGetterSetterGenerator是一个函数,它从中返回另一个函数myGetterSetter在它的第一行中,这种方法或模式我不清楚。请帮助我理解。谢谢函数返回了一些东西,可能是-对象,函数-有什么问题吗?ng模型需要一个对象,但这里的ng模型=“fruitsGetterSetGenerator(fruitName)”我们有函数调用,它将返回一个对象。所以现在是时候告诉Angula

我正在学习英语。因此,阅读了许多文章和文章的角度。这次我不理解代码中的某个特定区域。 代码取自


FROUTSGetterSetterGenerator是一个函数,它从中返回另一个函数myGetterSetter在它的第一行中,这种方法或模式我不清楚。请帮助我理解。谢谢

函数返回了一些东西,可能是-对象,函数-有什么问题吗?
ng模型
需要一个对象,但这里的
ng模型=“fruitsGetterSetGenerator(fruitName)”
我们有函数调用,它将返回一个对象。所以现在是时候告诉AngularJS它应该执行我们的函数,这样它就可以访问返回的对象了。答案和它链接的文档解释了这个方法。我不确定您还需要知道什么。什么时候调用函数myGetterSetter(),谁来调用它?任何人都可以帮助我理解发布的代码。
<label ng-repeat="fruitName in ['apple', 'orange', 'pear', 'naartjie']">
  <input
    type="checkbox"
    ng-model="fruitsGetterSetterGenerator(fruitName)" 
    ng-model-options="{ getterSetter: true }"
  > {{fruitName}}
</label>

$scope.fruits = ['apple', 'pear']; // pre checked

$scope.fruitsGetterSetterGenerator = function(fruitName){
    return function myGetterSetter(nowHasFruit){
        if (nowHasFruit !== undefined){
            // setter
            fruitIndex = $scope.fruits.indexOf(fruit);
            didHaveFruit = (fruitIndex !== -1);
            mustAdd = (!didHaveFruit && nowHasFruit);
            mustDel = (didHaveFruit && !nowHasFruit);
            if (mustAdd){
                $scope.fruits.push(fruit);
            }
            if (mustDel){
                $scope.fruits.splice(fruitIndex, 1);
            }
        } else {
            //getter
            return $scope.user.fruits.indexOf(fruit) !== -1;
        }
    }
}
$scope.fruitsGetterSetterGenerator = function(fruitName){
    return function myGetterSetter(nowHasFruit){}
}