我正在学习AngularJS,并且我有一个问题。更改视图中的范围值
这里是我的代码:
HTML(视图):
...
<table>
<tr ng-repeat="student in students">
<td ng-class="{'student-highlight' : isStudent}">
<input type="checkbox"
ng-model="student.option"
ng-change="isStudent = checkStudent(student)" />
</td>
...
<button type="button" ng-click="submit()">SUBMIT</button>
控制器:
$scope.checkStudent = function(student) {
if(some_logic)
return true; // It returns true for now
else
return false;
};
$scope.submit = function() {
// I want to change isStudent in the view to false
};
因此,当用户改变输入框,它使细胞被突出显示返回true由CSS课程'学生突出'。我想在用户点击'submit'按钮后在视图中更改'isStudent'值。
为了做到这一点,我用$$ childHead控制器:
for(var cs = $scope.$$childHead; cs; cs = cs.$$nextSibling) {
if(cs.isStudent)
cs.isStudent = false;
}
,但我不喜欢我在这里做 - 这不是漂亮。我想我可以使用$ scope。$ emit()或$ scope。$ broadcast(),但我不知道如何。
请帮我一把!
IsStudent是您的范围的变量吗? – 2014-09-24 14:08:08
这是一个在视图中的子范围 – 2014-09-24 14:17:45
因此在控制器中,没有。 – 2014-09-24 14:18:04