我在這裏的角NG-Click事件:角範圍內不得到更新視圖
eventApp.controller('DetailEventController', ['$scope', '$http', '$compile', '$timeout', function ($scope, $http, $compile, $timeout, uiCalendarConfig) {
$scope.customRule = { isReadOnly: true, isRegistered: false };
$scope.EventClick = function (event, jsEvent, view) {
var isRegistered;
console.log(event.character);
angular.forEach(event.character, function (pvalue, pkey) {
for (var item in pvalue.teilnehmer) {
if (pvalue.teilnehmer[item] == CurrenUserName) {
console.log("User ist bereits angemeldet!");
isRegistered = true;
} else {
console.log("User ist noch nicht angemeldet!");
isRegistered = false;
}
}
});
$scope.customRule.isRegistered = isRegistered;
console.log($scope.customRule);
$scope.eventDetails = event;
$("#detailEvent").css("display", "block");
};
}]);
當我打開控制檯$ scope.customRule是正確的,有「真」值。
User ist bereits angemeldet!
Object { isReadOnly: false, isRegistered: true }
但在我看來它仍然是「假」。
HTML:
<div class="modal-footer">
{{customRule}}
<button title="Anmelden" class="btn btn-primary pull-right" ng-click="anmelden(eventDetails.id,radio.class.klasse2Event_Id)" ng-disabled="customRule.isReadOnly || customRule.isRegistered">Anmelden</button>
<button title="Löschen" class="btn btn-primary pull-right" ng-click="removeEvent(eventDetails.id)" ng-disabled="customRule.isReadOnly">Event Löschen</button>
</div>
所以我查看沒有得到更新的範圍。你能告訴我爲什麼嗎?
我正在閱讀有關角應用函數。但我不認爲這對我有幫助。如果我做了我的更新後應用的功能:
$scope.customRule.isRegistered = isRegistered;
$scope.$apply();
我獲得以下錯誤
編輯: 我不知道爲什麼,但我解決了該問題:
現在我不再初始化customrules。 我在點擊事件之後直接啓動了這個值(isRegistered)。
之前: $ scope.customRule.isRegistered = isRegistered;
After: $ scope.isRegistered = isRegistered;
$scope.EventClick = function (event, jsEvent, view) {
var isRegistered;
var testi;
angular.forEach(event.character, function (pvalue, pkey) {
for (var item in pvalue.teilnehmer) {
if (pvalue.teilnehmer[item] == CurrenUserName) {
console.log("User ist bereits angemeldet!");
isRegistered = true;
testi = "WAHR";
} else {
console.log("User ist noch nicht angemeldet!");
isRegistered = false;
testi = "FALSCH";
}
}
});
$scope.isRegistered = isRegistered;
$scope.eventDetails = event;
console.log($scope.customRule);
//$scope.eventDetails = event;
$("#detailEvent").css("display", "block");
};
發佈您的完整視圖代碼。大多數情況下,你可能錯過了ng控制器 – Kalyan