变量不会作为AngularJS中的参数传递

时间:2013-07-15 18:04:44

标签: forms angularjs attributes arguments

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

它应该做什么:允许列表项的内联编辑,从数组“成绩”生成,每个项目都是“成绩”。这就是我遇到麻烦的地方:在调用函数$ scope.update时,thisScore和newScore的值会从变量{{grade.score}}和{{studentGradeNew}}中得到很好的传递。但是,我试图为thisName和newName传递的值不是。当我将传入的参数发送到控制台时,我得到了这个:

undefined undefined 98 88 

我一直在四处寻找为什么旧名和新名都没有过去,但我不知所措。这对我来说特别奇怪,因为旧的和新的得分变量成功传递,并且它们以与名称相同的方式声明。我必须遗漏一些东西,但想不到什么。

1 个答案:

答案 0 :(得分:0)

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