2016-10-28 2 views
0

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; 
     } 
    }; 
}); 
+0

whrere Sie ng-Repeat verwenden, die einen doppelten Schlüssel hat, verwenden Sie 'Spur von $ index' es zuerst zu lösen. – Sravan

+0

@Sravan. Was ist mit dem ersten Problem? Siehe auch Bearbeiten – Abhi

+0

Sie könnten den Wert anhängen, anstatt ihn zu ersetzen, fügen Sie bitte den Fabrikcode hinzu. – Sravan

Antwort

0

Dieser Fehler ist, weil Sie eine ng-repeat auf einer Sammlung mit Dubletten tun. Sie müssen nach Index suchen, wenn Sie bei einer Sammlung mit Duplikaten eine ng-Wiederholung durchführen.

+0

ok danke. aber was ist mit dem ersten Problem – Abhi

Verwandte Themen