Angular还是新手。我尝试了$scope.$apply();
,但这不适用于$http
,所以我尝试了$watch
,但没有解决它。
这是我的Msg HTML:
<div class="alert alert-success" role="alert" ng-bind="ValidationContainer.SuccessMessages"></div>
这是我的Angular JS代码:
$scope.ValidationContainer;
$scope.sendForm = function () {
$http({
method: 'POST',
url: formActionUrl,
data: $scope.ViewModel
}).success(function (data, status, headers, config) {
$scope.ValidationContainer = data.ValidationContainer;
}).error(function (data, status, headers, config) {
});
$scope.$watch('ValidationContainer', function () {
console.log('changed');
});
};
我可以看到成功消息是从控制台中的服务器返回的:
但是消息总是空白的:
修改
包含数据的控制台
使用Console.log
$scope.sendForm = function () {
$http({
method: 'POST',
url: formActionUrl,
data: $scope.ViewModel
}).success(function (data, status, headers, config) {
console.log(data);
$scope.ValidationContainer = data.ValidationContainer;
console.log($scope.ValidationContainer);
}).error(function (data, status, headers, config) {
});
$scope.$watch('ValidationContainer', function () {
console.log('changed');
});
};
编辑2
好的,我让它像这样工作(没有$watch
使用{{ }}
):
<div class="alert alert-success" role="alert">
<ul ng-repeat="msg in ValidationContainer.SuccessMessages">
<li>{{msg.Message}}</li>
</ul>
</div>
和Angular:
$scope.sendForm = function () {
$http({
method: 'POST',
url: formActionUrl,
data: $scope.ViewModel
}).success(function (data, status, headers, config) {
console.log(data);
$scope.ValidationContainer = data.ValidationContainer;
console.log($scope.ValidationContainer);
}).error(function (data, status, headers, config) {
});
};
问题2:如果没有 ng-repeat
答案 0 :(得分:-1)
你想要显示一个对象,这是不可能的。
你必须这样做:
<div class="alert alert-success" role="alert" ng-repeat="message in ValidationContainer.SuccessMessages" ng-bind="message.Message"></div>
它将显示字符串