离子 - 侧菜单无法启动

时间:2014-07-25 13:25:51

标签: angularjs ionic-framework

我需要在导航到特定页面时自动打开菜单。

但该事件被忽略。

我创建了菜单控制器:

.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()之外,在导航到特定页面时自动打开侧边菜单没有任何反应。

1 个答案:

答案 0 :(得分:2)

我发现了问题:

当我调用'$ scope.toggleLeft();'时,

在btn()之外,页面/模板仍未加载/呈现DOM。当我点击按钮(btn())时,因为DOM已经被渲染了。

自动打开侧边菜单我只需要调用'$ scope.toggleLeft();'当DOM已经存在并且为了实现我需要定义一个Watcher,当我对我的模板进行一些修改时会做一些事情:

    $timeout(function () {
        $scope.toggleLeft();
    });

$ timeout(function(){//在DOM渲染后运行});

这样,正在工作:)

编辑:

我正在查看我的答案,我注意到这个答案不正确。

调用$ timeout会触发一个摘要周期,捕获DOM中的差异并对其进行更新。 其他事件,如单击按钮或写入输入文本会触发摘要周期,这就是为什么只有在单击按钮时才会发生更改