我是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
我一直在四处寻找为什么旧名和新名都没有过去,但我不知所措。这对我来说特别奇怪,因为旧的和新的得分变量成功传递,并且它们以与名称相同的方式声明。我必须遗漏一些东西,但想不到什么。
答案 0 :(得分:0)
尝试删除函数调用中的{{}}。它们不是必需的。不确定为什么它仍然会找到一些变量而不是其他变量,但是当我删除它们时,我开始使用它们,事情就开始起作用了。