我的
obj
var app = angular.module('myApp');
app.controller('HomeController',
function($scope, $http, $rootScope, $stateParams, $state, LoginService) {
$scope.user = $rootScope.userName;
console.log("Starting http request");
$http.get("http://127.0.0.1:5000/trying").success(function (response) {
$scope.myData = response.users;
console.log(response);
});
console.log("ending http request");
});
home.html正在从index.html呈现。这样做很好,可以显示正在登录的用户。但是,ng-repeat无法正常工作。在检查其显示时,其已被注释掉。我在做什么错了?
答案 0 :(得分:0)
x in myData
和x of myData
)。也可以做(dataKey, dataValue) in myData
ng-if="!isLoading"
。最初,我在this。$ onInit函数中设置(一旦页面准备好初始化,它将自动调用),然后在响应中将其设置为isLoading = false。 `
this.$onInit = function(){
$scope.isLoading = true;
// rest of the stuff like http.get...
$http.get("http://127.0.0.1:5000/trying").success(function (response)
$scope.myData = response.users;
$scope.isLoading = false;
console.log(response);
});
};
`
让我知道是否对您有帮助。您的视图,也可能是由于其他原因该视图未更新。
专业提示:最初定义$ scope.myData时,如果希望ng-repeat正确运行,则它必须与返回的变量类型相同。 这些都不是,“声明为[],但随后通过api调用以{}填充”。
这是可以使您难堪的事情之一,因为香草javascript通过可变类型交换非常好用。该视图将只忽略代码气味,而不执行任何操作……如果您不知道要查找的内容,这将非常令人沮丧。这就是为什么一些开发人员开始使用打字稿和其他类型的javascript的原因,它们在允许您处理变量的内容上更加固定……但这完全是另一篇文章。