【发布时间】:2015-06-24 11:07:51
【问题描述】:
ng-show="my.message" 在 http 成功时设置为 true,但不会更新视图。
这是我的代码:
控制器 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)
})
};
});
索引.html:
<div ng-controller="FormCtrl">
<div ng-show="my.message">It worked!</div>
</div>
my.message 在控制台中显示为 true,但 div 仍然隐藏在视图中。
我不知道问题出在哪里。
【问题讨论】:
-
它应该可以工作,你能在 Fiddle 中重现吗?模板:jsfiddle.net/65yyf23x
-
尝试在回调结束时添加对 $scope.$apply() 的调用
-
@K K:它给出了这个错误错误:[$rootScope:inprog]
-
尝试将日志添加到您的 html:
<pre>{{my|json}}</pre>并检查发生了什么 -
@Maxim 它在启动时显示为 false,即使在控制台中登录 true 后也保持为 false。我想在使用范围和 rootScope 时存在一些问题。你有什么建议?
标签: angularjs ng-show angularjs-ng-show