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){}
}