我的服务有问题:
app.service('admin', function($http, $scope){ // Tried $scope but no dice...
var self = this; self.admin = false;
$http.get("api/login.php").success(function(reply){
if(reply.realname !=null){
self.admin = true;
} else{ self.admin = false }
});
alert(self.admin); // this is just for debugging purposes. I know I havent got my service setup properly yet, I want to get it working properly first.
});
我想设置我的服务$ http.get,根据请求将self.admin设置为值。
关于不相关的说明:
此请求会检查您是否为管理员,这就是我能负担reply.realname !=null
的原因,因为它只查找管理员用户,如果不是则不返回任何内容。
答案 0 :(得分:0)
当runTarm买断时,$http
会返回一个承诺。我利用了这个:
app.service('admin', function($http){
self.adminOrNot = function(){
var defer = $q.defer();
var promise = $http.get("api/user.php");
return promise;
}
});
app.controller("mainController", function($scope, admin){
var scope = $scope;
admin.adminOrNot().then(function(data){
if(data.data.error != null){
scope.adminStatus = false;
} else if(data.data.steamid != null){
scope.adminStatus = true;
}
});
});
完美的作品!想到它,我可能应该把逻辑放在管理服务中......无论如何,它都有效!
然后,我必须做的就是在我的HTML中检索它:
<input type="image" src="media/admin.png" ng-hide="adminStatus">
我不确定这是否是最好的做事方式,但......