我需要在导航到特定页面时自动打开菜单。
但该事件被忽略。
我创建了菜单控制器:
.controller('MenuController', function ($scope, $ionicSideMenuDelegate) {
$scope.toggleLeft = function() {
$ionicSideMenuDelegate.toggleLeft();
}; })
和特定的页面控制器:
.controller('Sem_ConsultasCtrl', function ($scope) {
$scope.toggleLeft();
$scope.btn = function () { $scope.toggleLeft(); }
})
在我的特定页面中,我有一个指令ng-click =" btn()"这是有效的(单击按钮时切换侧面菜单)。 但如果我打电话给#39; $ scope.toggleLeft(); '在btn()之外,在导航到特定页面时自动打开侧边菜单没有任何反应。
答案 0 :(得分:2)
我发现了问题:
在btn()之外,页面/模板仍未加载/呈现DOM。当我点击按钮(btn())时,因为DOM已经被渲染了。
自动打开侧边菜单我只需要调用'$ scope.toggleLeft();'当DOM已经存在并且为了实现我需要定义一个Watcher,当我对我的模板进行一些修改时会做一些事情:
$timeout(function () {
$scope.toggleLeft();
});
$ timeout(function(){//在DOM渲染后运行});
这样,正在工作:)
编辑:
我正在查看我的答案,我注意到这个答案不正确。
调用$ timeout会触发一个摘要周期,捕获DOM中的差异并对其进行更新。 其他事件,如单击按钮或写入输入文本会触发摘要周期,这就是为什么只有在单击按钮时才会发生更改