javascript - ng-click 使用参数更改 angularjs 中的路由

标签 javascript angularjs angular-ui-router ionic-framework

我想更改使用 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'
    }
  }
})   

这是我 Controller 的代码

  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 服务注入(inject)您的 Controller 。

编辑

如果您正在使用 $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,第二个是带有您的参数的对象。

关于javascript - ng-click 使用参数更改 angularjs 中的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26532978/

相关文章:

javascript - URL 前缀 "res://"- 它有什么作用或者是什么创建了这个前缀?

javascript - 在 firefox 和 chrome 中上传图片

javascript - 使用POST请求登录时读取服务器发送的cookie

angularjs - 每次激活 angularjs ui-router 命名 View 时如何运行 Controller ?

javascript - 使用 JavaScript 从 HTML5 data-* 属性获取 JSON 对象

javascript - 在灵活的图像布局上水平拆分屏幕

ruby-on-rails - 安装在 rails 上的发动机中的 Angular

javascript - angularjs 日期格式在 yyyy/MM/dd 格式的 Controller 中不起作用

javascript - 在 AngularJS 路由中使用常量

angularjs - $stateChangeSuccess 在 Controller 实例化后被解雇