我正在尝试使用热键来更改 AngularJS 中的选项卡。我是 AngularJS 的新手,但我确信它应该像下面的代码一样简单。因此,当按下热键时,无法更改选项卡的活动性。它现在基本上什么都不做,但是当按下“t”时,它应该显示 tab2 内容。
我创建了一个键绑定指令,它调用一个函数并使用 Mousetrap 来使用键盘快捷键。因此,当按下热键“t”时,我可以调用该函数并将活动选项卡更改为 true,但我无法显示更改在视图中。
这是我的 html 文件
<div ng-controller="TabsDemoCtrl">
<keybinding on="t" invoke="hotkey()"></keybinding>
<tabset>
<tab ng-repeat="tab in tabs" heading="{{tab.title}}" active="tab.active">
{{tab.content}}
</tab>
</tabset>
</div>
这是 app.js 文件
var app = angular.module('ui.bootstrap.demo', ['ui.bootstrap']);
app.controller('TabsDemoCtrl', function ($scope, $window) {
$scope.tabs = [
{ title:'Dynamic Title 1', content:'Dynamic content 1' },
{ title:'Dynamic Title 2', content:'Dynamic content 2'}
];
$scope.hotkey = function(){
$scope.tabs[1].active=true;
}
});
app.directive('keybinding', function () {
return {
restrict: 'E',
scope: {
invoke: '&'
},
link: function (scope, el, attr) {
Mousetrap.bind(attr.on, scope.invoke);
}
};
});
这是一个 Plunker。