ng-show = "my.message" имеет значение true в http-успехе, но не обновляет представление.ng-show не обновляет вид
Вот мой код:
контроллер Js:
lgControllers.controller('FormCtrl', function($scope, $http) {
$scope.my = {
message: false
};
$scope.submitForm = function() {
$http({
url: "../saket/ajax.php",
data: "email_id=" + $scope.form.emailaddress + "&category_id=" + cat_num + "&action=subscribe",
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
}).success(function(data) {
$scope.my = {
message: true
};
console.log(data); // http is success
console.log($scope.my.message); // gives true
}).error(function(err) {
"ERR", console.log(err)
})
};
});
Index.html:
<div ng-controller="FormCtrl">
<div ng-show="my.message">It worked!</div>
</div>
my.message дает верно в консоли, но DIV остается скрытым в представлении.
Я не могу понять, где проблема.
Он должен работать, вы можете воспроизвести в Fiddle? template: http: //jsfiddle.net/65yyf23x/ –
Попробуйте добавить вызов в $ scope. $ apply() в конце вашего обратного вызова –
@KK: Он дает эту ошибку Ошибка: [$ rootScope: inprog] –