我想更改使用 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/