0

我是 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 

我一直在四处挖掘,看看为什么新旧名称没有过去,但不知所措。这对我来说特别奇怪,因为旧的和新的分数变量都成功通过了,并且它们与表单的声明方式与名称相同。我一定错过了什么,但想不出什么。

4

1 回答 1

0

尝试删除函数调用中的 {{}}。它们不是必需的。不知道为什么它仍然会找到一些变量而不是其他变量,但是当我删除它们时,在我的 plunker 中,事情开始起作用了。

于 2013-07-15T18:25:24.233 回答