Javascript $http.get之后未更新UI
嗨,我有以下angular.js控制器Javascript $http.get之后未更新UI,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,嗨,我有以下angular.js控制器 function WorkSpacesController($scope, $http, notifications) { $scope.Workspaces = []; $scope.Query = ""; $http.get("api/Workspaces/GetAllWorkspaces/").then(function(response) { for (var i = 0; i < response.data.leng
function WorkSpacesController($scope, $http, notifications) {
$scope.Workspaces = [];
$scope.Query = "";
$http.get("api/Workspaces/GetAllWorkspaces/").then(function(response) {
for (var i = 0; i < response.data.length; i++) {
$scope.Workspaces.push(response.data[i]);
notifications.showSuccess("Added new Item");
}
},
function(data) {
notifications.showError("Could not load workspaces");
});
}
function WorkSpacesController($scope、$http、通知){
$scope.workspace=[];
$scope.Query=“”;
$http.get(“api/workspace/GetAllWorkspace/”)。然后(函数(响应){
对于(var i=0;i
notifications.showSuccess
和notifications.showError
方法在屏幕上显示通知。使用此脚本:
奇怪的是,showsucture
方法实际工作并显示通知,而showError
不工作且不显示任何内容。我调试了代码,一切看起来都很好,消息被添加到消息数组中,没有收到任何错误。我还尝试调用showsucture
而不是showsucture
,以验证它不是一个bug,并且可以正常工作
关于为什么在调用
showError
时未更新UI的任何想法?我认为您的问题可能存在于通知服务中,因为下面的示例工作正常
angular.module('app',[]).controller('WorkspacesController',function($scope,$http,notifications,$templateCache){
$scope.workspace=[];
$scope.Query=“”;
//在本例中,将url放入http缓存,这样我们就可以在没有实际http请求的情况下加载它
//尝试一个成功的请求
$http.get('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css,然后(函数(响应){
//对于(var i=0;i
对于显示的showError()
相关消息,您的HTTP请求应该会导致错误-是吗?您是如何强迫它导致错误的?@callmekatootie我只是将url更改为不存在的url。您是否添加了断点并检查它是否达到了该方法,是否临时替换到警报或console.log并检查发生了什么情况)。@Braulio是的,我有。我还调试了showError方法,它遵循与showSucees相同的流程,没有错误。Log也会在浏览器控制台中显示消息。在开发人员输出控制台上是否有任何错误?如果隔离在plunkr中工作(您可以尝试访问github或flickr公共rest api),它应该与您的应用程序相关