标题说明了一切。我在指令中使用AngularJS和jQuery键绑定。在具有不同键盘布局的不同页面上调用新指令。
出于某种原因,当我使用HTML而不是JavaScript更改网址时(即点击<a href="#/link">
vs window.location = '#/link';
),我遇到了异常行为。
任何可能是答案的一般知识?我会发布代码但是调试太多了。
答案 0 :(得分:0)
我不会用&#39; window.location&#39;来改变网址。也许这会导致你的问题。 我使用状态来改变网址。
我将&#39; ui.router&#39; 用于主模块,并将 $ stateProvider,$ urlRouterProvider 注入 config(function())< / strong>,之后在函数体上我把状态(我的页面的网址),我从任何地方调用它们到应用程序
<强> 1。具有状态的主模块:
angular.module('MainApp')
.config(function ($stateProvider, $urlRouterProvider, $locationProvider) { //$stateProvider & $urlRouterProvider are from ui.router module
.state('floorplan', {
url:/floorplan/:param1/:param2/:param3',
controller:'myCtrl1',
templateUrl:'/assets/modules/part3/part3.html'
onEnter: function () {
},
onExit: function () {
}
})
.state('seating', {
url: '/seating',
template: '<div>Seating is under construction</div>'
})
.state('event_details', {
url: '/event/details',
template: '<div>Event details is under construction</div>'
})
.state('reports', {
url: '/reports',
template: '<div>Reports is under construction</div>'
})
.state('part3', {
url: '/part3/:activeEventId/:activeHallId/:activeHallVariant',
controller: 'part3ctrl',
templateUrl: '/assets/modules/part3/part3.html',
onEnter: function () {
},
onExit: function () {
}
})
.state('login', {
url: '/login',
controller: 'LoginCtrl',
templateUrl: '/assets/modules/login/login.html',
onEnter: function () {
},
onExit: function () {
}
});
$urlRouterProvider.otherwise('floorplan'); //when no route found redirect to login
});
<强> 2。在这里我称之为状态,以便更改页面 首先,你注入了'$ state&#39;进入你的控制器,当你需要更改网址时:
$state.go('floorplan', {
'param1': val1,
'param2': val2,
'param3': val3
});
希望有助于好运。