我正在學習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