gpt4 book ai didi

javascript - 指令的无序执行

转载 作者:行者123 更新时间:2023-12-03 12:25:25 24 4
gpt4 key购买 nike

当我调用Details函数时,它给出空的详细信息,因为Details函数在从json文件获取数据之前执行。如何解决问题?

app.controller('loginCtrl',function($scope,login){
$scope.user=login.Details();
}

app.factory('login',function($cookieStore,$http){
var users=[];
$http.get("js/user.json").success(function(data){
angular.copy(data,users);
});
return{
Details:function()
{
alert(users);
return users;
}
}

最佳答案

您需要在 $http.get 的成功回调中更新 $scope.user。最好的方法是在 Controller 中定义成功函数并将其传递到您的服务中。所以你的服务就变成了:

app.factory('login', function($cookieStore,$http){
var userCache;

return {
doLogin: function(user, password, successCallback) {
if(!userCache) {
$http.get("js/user.json").success(function(data) {
userCache = data;
successCallback(data);
});
}
}
}
}

并且您的 Controller 将其添加到点击处理程序或其他内容中的某个位置:

login.doLogin('sampleUsername', 'samplePassword', function(data) {
$scope.user = data;
});

这应该可以满足您的大部分需求,您可能需要根据验证登录的方式以及示例 JSON 文件包含的内容进行调整。祝你好运。

关于javascript - 指令的无序执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24228706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com