erklären habe ich ein factory
, in dem ich ein IP-Set, das für alle Steuerungen üblich ist. Ich erhalte die ip in den anderen Controllern und den Web-Service-Methode wie folgt hinzu: url : $scope.ipForHttp+"getDeviceDetailsReport"
wo $scope.ipForHttp
ist http://websitename.com/
, die ich von der factory
bekommen.Erste für etwas unbestimmt, dass ich nicht
Dies funktioniert in meinem lokalen Computer. Wenn ich das hosten und die Seite öffne bekomme ich es das erste Mal für alle Seiten. Aber wenn ich die Seite aktualisiere, sehe ich einen Fehler in der Konsole.
GET http://websitename.com/undefinedgetDeviceDetailsReport 404 (Not Found)
. Ich erhalte diesen Fehler nur, wenn ich die Seite aktualisiere und nur auf der gehosteten Site, nicht auf meinem lokalen Computer.
Ich bekomme undefined
zwischen dem /
und Methodenname getDeviceDetailsReport
.
Dieser Teil des Codes ist, wo ich die Daten aus factory
verwenden:
$scope.ipForHttp = userDetailsFactory.getUserDetailsFromFactory().ipAddress;
$scope.loading = false;
$scope.ClientID = userDetailsFactory.getUserDetailsFromFactory().clientidFromSession;
// $scope.dev={};
$scope.getDevice =function(){
$scope.loading = true;
$http({
method : "GET",
url : $scope.ipForHttp+"getDeviceDetailsReport" //i think undefined error here.
Und ich bin immer diese Error: ngRepeat:dupes Duplicate Key in Repeater
auch nur, wenn ich die Seite aktualisieren.
bearbeiten. Ich lasse die factory
laufen und setze den Wert jedesmal wenn die Seite aufgefrischt wird. Vielleicht ist der Wert undefined
das zweite Mal..aber ich weiß nicht, wie ich noch den alten Wert habe.
Vielleicht ist der Grund, warum ich die Error: ngRepeat:dupes
bekommen, wenn ich zu aktualisieren. Was mache ich falsch?
Die Indexseite des Controllers mit dem factory
(die die anderen HTML-Seiten enthält):
angular.module('tollApp')
.controller('indexController', function($scope,$http,$window,userDetailsFactory){
$scope.usernameFromServer={};
$scope.getUserDetails = function(){
$http({
method:'GET',
url:'http://192.168.1.80:4000/getUserDetails'
// url:'http://websitename.com/getUserDetails'
})
.then(function(response){
// console.log(JSON.stringify(response));
userDetailsFactory.setUserDetailsInFactory(response.data);
$scope.usernameFromFactory = userDetailsFactory.getUserDetailsFromFactory().usernameFromSession;
$scope.theIP = userDetailsFactory.getUserDetailsFromFactory().ipAddress;
// $scope.usernameFromServer = userDetailsFactory.getUserDetailsFromFactory().username;
// console.log(JSON.stringify($scope.usernameFromFactory)+"usernameFromFactory");
})
}
$scope.logout = function(request,response){
$http({
method:'GET',
url:'/logout'
})
.then(function(response){
console.log(JSON.stringify(response));
if(response.data=="logout"){
// $window.location.href="http://websitename.comlogin";
$window.location.href="http://192.168.1.80:4000/login";
}
})
}
console.log("indexController");
}).factory('userDetailsFactory',function(){
var user = {};
return {
setUserDetailsInFactory : function(val){
user.useridFromSession = val[0].UserID;
user.usernameFromSession = val[0].UserName;
user.userroleFromSession = val[0].UserRole;
user.clientidFromSession = val[0].ClientID;
user.ipAddress = "http://192.168.1.80:4000/";
// user.ipAddress = "http://websitename.com/";
// console.log("in set "+user.clientidFromSession);
},
getUserDetailsFromFactory : function(){
return user;
}
};
});
whrere Sie ng-Repeat verwenden, die einen doppelten Schlüssel hat, verwenden Sie 'Spur von $ index' es zuerst zu lösen. – Sravan
@Sravan. Was ist mit dem ersten Problem? Siehe auch Bearbeiten – Abhi
Sie könnten den Wert anhängen, anstatt ihn zu ersetzen, fügen Sie bitte den Fabrikcode hinzu. – Sravan