我正在使用Caph 3.0库开发Tizen TV应用程序。 当我重新定位到新页面时,我无法手动设置焦点。 例如,我有下一个代码的页面:
HTML
<a href="" ui-sref='home' >Movies</a>
<a href="" ui-sref='series'>Series</a>
当我点击系列链接时 - 出现带有下一个代码的新页面
<a href="" focusable on-focused='seriesCtrl.focusedItem($event)' id='1'>test element1</a>
<a href="" focusable on-focused='seriesCtrl.focusedItem($event)'id='2'>test element1</a>
<a href="" focusable on-focused='seriesCtrl.focusedItem($event)' id='3'>test element1</a>
但我失去了焦点。我无法使用箭头键(模拟器)在该新页面上导航 我尝试使用focusController.focus()手动设置焦点,但它没有帮助我。 我使用ControllerAs语法。
新页面的控制器
focusController.focus(document.getElementById('1'));
console.log(focusController.getCurrentFocusItem()); ----- In this place console shows that focus still on Series link from previous page
vm.focusedItem = function ($event) {
console.log($event.currentTarget)
}
我犯了什么错误? 谢谢。
答案 0 :(得分:1)
终于解决了。感谢CAPH的支持。
尝试
App.controller("DetailPageCtrl", ['$rootScope', '$scope', 'focusController', 'FocusUtil', function($rootScope, $scope, focusController, FocusUtil) {
function initFocus() {
$scope.$applyAsync(function() {
FocusUtil.isElement($('#1')) && focusController.focus($('#1'));
});
}
$scope.$on('$viewContentLoaded', function() {
console.log("jj apply async $viewContentLoaded");
initFocus();
});
....... }])
P:S:另外检查ng-controller不属于&lt;身体&gt;标签