0

Ich habe Access-Navigation mit $scope gemacht und ich habe sie basierend auf Klick und ich tat. Ich kann URL in Variable nicht einstellen. Die richtige URL lautet http://www.example.com/base/index oder http://www.example.com/base/thread oder http://www.example.com/base/tag. Aber das Ergebnis ist immer `http://www.example.com/base/index sogar gedacht, ich klickte eine andere Navigation.

Nachdem ich mein Problem suche, ist die Antwort machen $routeProvider und $location. Kann ich $scope verwenden und die URL in $ scope setzen?

Dies ist mein Code:

$scope.states = {}; 
$scope.states.activeItem = 'nav1'; 

    $scope.items = [{ 
     id: 'nav1', 
     target: 'home', 
     title: 'Home', 
     icon: 'fa fa-home fa-3x' 
    }, { 
     id: 'nav2', 
     target: 'thread', 
     title: 'Thread + Answer', 
     icon: 'fa fa-briefcase fa-3x' 
    }, { 
     id: 'nav3', 
     target: 'tag', 
     title: 'Tag', 
     icon: 'fa fa-briefcase fa-3x' 
    }, 
    { 
     id: 'nav4', 
     target: 'trending_tag', 
     title: 'Trending Tag', 
     icon: 'fa fa-briefcase fa-3x' 
    }, 
    { 
     id: 'nav5', 
     target: 'category', 
     title: 'Category', 
     icon: 'fa fa-briefcase fa-3x' 
    }, 
    { 
     id: 'nav6', 
     target: 'user', 
     title: 'User', 
     icon: 'fa fa-user-circle-o fa-3x' 
    }]; 

    $scope.callToAction = function(actionName){ 

     if($scope[actionName]){ 
      $scope[actionName](); 
     }else{ 
      alert("YOUR PAGE NOT FOUND BECAUSE AKU BELUM BUAT PAGE NYA HEHE"); 
     } 
    }; 

By the way, $scope.items meiner Navigation auszuführen.

+0

Soweit es scheint, Sie erstellt einen Code wollte die aktive URL im Menü oder etwas zeigen, nicht wahr? – SPViradiya

+0

Ja, hast du recht. Aber ich bin verwirrt zu setzen URL wenn Sie auf diese Weise. – userpr

Antwort

1

Sie können die URL Ihrer Seite ändern, indem Sie $location.url verwenden.

$location.url('/yourUrl') wird zu /yourUrl gehen. Sie können eine Zeichenfolge als Variable an die Funktion übergeben.

Beachten Sie, dass Sie auch auf die aktuelle URL zugreifen können, mit:

$scope.currentUrl = $location.url(); // <-- No params 

Vergessen Sie nicht zu inject$location in Ihrem Service/Controller!

+0

Kann ich $ location.url in $ scope.items setzen? Ich meine so { id: 'nav1', $ location.url(); } – userpr

+1

Ist das für eine Navbar? Sie können '$ location.url ('nav1')' bei Bedarf mit einem 'ng-Klick' aufrufen. – Mistalis

+0

Ja für navbar. Aber es funktioniert nicht. Die URL ist korrekt, aber meine Seite zeigt nicht – userpr

0

Sie können $routeProvider für die Navigation verwenden.

angular.module('FunnyAnt.Examples.Routing') 
.config(function ($routeProvider) { 
    $routeProvider. 
    when('/home', { 
     templateUrl: 'embedded.home.html', 
     controller: 'HomeController' 
    }). 
    when('/about', { 
     templateUrl: 'embedded.about.html', 
     controller: 'AboutController' 
    }). 
    otherwise({ 
     redirectTo: '/home' 
    }); 
}); 

Arbeits fiddle here