我在这里的角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