ng用param点击angularjs中的更改路线

ng-click change route in angularjs with param

本文关键字:改路 angularjs param 点击 ng      更新时间:2023-09-26

我想改变用ionic框架构建angularjs应用程序的路线,但该路线没有改变

这是我的app.js代码

angular.module('starter', ['ionic', 'starter.controllers'])
.state('app.annuaire.menuitempage', {
  url: "/menuitempage/:ID",
  views: {
    'menuContent' :{
      templateUrl: "templates/menuItemPage.html",
      controller: function($stateParams){
      $stateParams.ID  ;
     }
    }
  }
})
.state('app.annuaire', {
  url: "/annuaire",
  views: {
    'menuContent' :{
      templateUrl: "templates/annuaire.html",
      controller: 'MenuItemCtrl'
    }
  }
})   

这是我的控制器的代码

  angular.module('starter.controllers', [])
  .controller('MenuItemCtrl', function($scope, $http, $location) {
    $scope.itemsMenu = {};
            var responsePromise =   $http.get("http://monguidepratique.com/mobile/getCategories.php?parent_id=0");
            responsePromise.success(function(data, status, headers, config) {
                //alert(data);
                $scope.itemsMenu = data;
            });
            responsePromise.error(function(data, status, headers, config) {
                alert("AJAX failed!");
            });
   $scope.itemClick = function(path){
            alert(1);
            $location.path(path); 
            };  
   }) 

这是我在annuaire.html 中的html代码

 <div class="col"  ng-click="itemClick('/menuitempage/1628')"><img class="img_menu" src="img/home.png"><p class="titre_center">Accueil</p></div>

尝试

$location.path(path)

而不是

$state.go(path)

您需要将$location服务注入控制器。

编辑

如果你正在使用$state.go-你应该使用下一种方式:

$scope.itemClick = function(id){
  $state.go('app.annuaire.menuitempage', {'ID': id})
}; 

和HTML:

<div class="col"  ng-click="itemClick(1628)"><img class="img_menu" src="img/home.png"><p class="titre_center">Accueil</p></div>

第一个参数是状态名,而不是URL,第二个是带参数的Object。

我解决了的问题

在annuaire.html中,我更改了

itemClick('/menuitempage/1628')

通过

itemClick('/app/menuitempage/1628') 

我通过更改了路线名称app.annuaire.menuitempage

app.menuitempage 
.state('app.menuitempage', {
  url: "/menuitempage/:ID",
  views: {
    'menuContent' :{
      templateUrl: "templates/menuitempage.html",
      controller: 'SubMenuCtrl'
    }
  }
})