我有一个问题。我在我的应用中使用了UI-ROUTER
的Angular.js。我在下面解释我的代码。
<li ui-sref-active="active"><a ui-sref="product.eVouchers.dashboard">Dashboard</a></li>
以上li标签生成以下输出
<a ui-sref="product.eVouchers.dashboard" href="/product/eVoucher/dashboard">Dashboard</a>
由于我还没有删除href参数中的哈希(#)标记,#
应该首先出现<a ui-sref="product.eVouchers.dashboard" href="#/product/eVoucher/dashboard">Dashboard</a>
,因为这个原因只有当我尝试在新标签中打开同一页面时右键单击页面即将到来。
我正在解释下面的路线文件。
var Admin=angular.module('medilink',['ui.router','ngMessages','ngFileUpload','ui.bootstrap','720kb.datepicker']);
Admin.run(function($rootScope, $state) {
$rootScope.$state = $state;
});
Admin.config(function($stateProvider, $urlRouterProvider,$locationProvider) {
$urlRouterProvider.otherwise('/product');
$stateProvider
.state('product', {
url: '/product',
templateUrl: 'productview/product.html',
controller: 'productController'
})
.state('product.eVouchers',{
url:'/eVoucher',
templateUrl:'VoucherView/mas.html',
controller: 'eVoucherController'
})
.state('product.eVouchers.dashboard',{
url:'/dashboard',
templateUrl:'VoucherView/dashboard.html',
controller: 'dashboardController'
})
$locationProvider.html5Mode({
enabled: false
});
});
这里我需要#
标签作为href参数,并在生成的html输出中包含其他值。请帮我解决这个问题。
答案 0 :(得分:0)
此问题似乎与HTML 5模式有关。检查文档:
<强> AngularJS Documentation for $location 强>
关掉它:
.config(['$locationProvider',
function ($locationProvider) {
// html 5 mode is by default turned off, so be sure
// that it is not turned on somewhere
$locationProvider.html5Mode({enabled:false});
}]);
答案 1 :(得分:0)
关闭html5Mode
$locationProvider.html5Mode(false)
如果它不起作用,可能你的AngularJS版本是v1.3.x.这是AngularJS v1.3.x中的一个错误,请参阅issue report。
将angular.js更新为最新的v1.5.7,将angular-ui-router.js更新为v0.2.11。它会起作用。