我是 AngularJS 的新手,并且遇到了将变量传递给控制器中的函数的问题。这是我的 HTML 页面中的代码:
<li ng-repeat="grade in grades">
<span class="status-{{grade.status()}}" ng-hide="visible" focus="visible = true" blur="visible = false" ng-click="visible = true">{{grade.name}},</span>
<span class="status-{{grade.status()}}" ng-hide="visible" focus="visible = true" blur="visible = false" ng-click="visible = true">{{grade.score}}</span>
<form ng-model="studentUpdForm" ng-submit="update({{grade.name}}, {{studentNameNew}}, {{grade.score}}, {{studentGradeNew}})" focus="visible = true" blur="visible = false" ng-show="visible">
<input type="text" ng-model="studentNameNew" size="12" class="status-{{grade.status()}}" placeholder="{{grade.name}}" value="{{grade.name}}">,
<input type="text" ng-model="studentGradeNew" size="2" class="status-{{grade.status()}}" placeholder="{{grade.score}}" value="{{grade.score}}"> <input class="btn-primary" type="submit" value="update">
</form>
</li>
这是表单指向的函数:
$scope.update = function(thisName, newName, thisScore, newScore) {
//run some code
};
它应该做什么:允许对从数组“grades”生成的列表项进行内联编辑,每个项目都是“grade”。这是我遇到麻烦的地方:在调用函数 $scope.update 时,thisScore 和 newScore 的值是从变量 {{grade.score}} 和 {{studentGradeNew}} 传入的。但是,我尝试为 thisName 和 newName 传递的值不是。当我将传入的参数发送到控制台时,我得到了这个:
undefined undefined 98 88
我一直在四处挖掘,看看为什么新旧名称没有过去,但不知所措。这对我来说特别奇怪,因为旧的和新的分数变量都成功通过了,并且它们与表单的声明方式与名称相同。我一定错过了什么,但想不出什么。