2017-10-29 3 views
0

Ich habe ein Problem. In meiner HTML-Datei habe ich einen folgenden Inhalt:angularjs ng-show funktioniert nicht ohne http erhalten

<div ng-controller='nav'> 
       <ul >    
        <li ng-show="sh" > 
         <a ui-sref="problems">name</a>       
        </li> 

      </div> 

Mein Controller ist:

app.controller('nav', function($scope, $state, $http){ 
     $(function(){   

      $scope.sh=true; 
      //$http.get('something'); 
     }); 
    });  

Wenn

$http.get('something') 

kommentiert wird, ng-Show funktioniert nicht. Wenn ich es jedoch auschecke, beginnt es zu arbeiten. Ich kann den Grund dafür nicht verstehen. Hattest du ein ähnliches Problem?

+2

Beenden Sie die Verwendung von jquery in Ihren Controllern. Sie brauchen nicht '$ (function()'. Sie brauchen nur '$ scope.sh = true'. Wo haben Sie in der angularjs-Dokumentation oder anderswo gefunden, dass Sie Ihren angularjs-Controller benötigen, um' '(Funktion() 'oder überhaupt benötigt jQuery? –

Antwort

0

Versuchen Sie dies unter Code verwenden.

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <meta charset="utf-8" /> 
</head> 
<body> 
    <div ng-controller='nav'> 
     <ul> 
      <li ng-show="sh"> 
       <a ui-sref="problems">name</a> 
      </li> 
     </ul> 
    </div> 

    <script src="../lib/angular.js"></script> 
    <script> 
     var app = angular.module('app', []); 
     app.controller('nav', function ($scope, $state, $http) { 
       $scope.sh = true; 
       $http.get('something') 
     }); 
    </script> 
</body> 
</html> 

Ich weiß nicht, warum Sie den JQuery Teil enthalten. Es ist immer gut, jquery in AngularJS-Projekten nicht zu verwenden. Sie werden fast alle Dinge in AngularJS auf die eine oder andere Weise bekommen.

0

Es besteht keine Notwendigkeit für Jquery Funktion dort können Sie direkt $scope.sh=true;

Verwandte Themen