Angular:改变状态后如何调用函数

时间:2014-05-31 09:43:07

标签: angularjs

我正在构建一个小型消息系统。我在我的状态(收件箱,发件箱)中使用选项卡。此外,我想点击“联系”链接时发送一条消息。如果我点击该链接,这应该发生:

  1. 将状态更改为消息状态
  2. 打开其他标签,名为“newmsg”
  3. 此刻,这就是我所拥有的:

    <a ng-click="mailContact()">contact</a>
    

    和我的控制员:

    $scope.mailContact = function() {
          $state.go('root.messages');
          $scope.openTab('new');
        };
    

    显然这不起作用,因为$ scope.openTab('new');永远不会执行。状态更改为我想要的,但标签未打开。我不清楚如何完成它。

1 个答案:

答案 0 :(得分:0)

好吧,愚蠢的事情是我有一个初始化打开&#34;收件箱&#34; ...

现在我写了一个可以解决问题的服务。

app.factory('msgTabService', ['$rootScope', function($rootScope) {
    var msgTabService = {};
    var tabname = "inbox";

    msgTabService.set = function(tab) {
        tabname = tab;
    };

    msgTabService.get = function() {
        return tabname;
    };

    msgTabService.openTab = function(tab) {
        if ($rootScope.currenttab !== tab)
        {
            $rootScope.currenttab = tab;
            msgTabService.set(tab);
        }
    };

    return msgTabService;

}]);

问题可能类似于:Save State of Tab content when changing Route with angularjs and BootStrap Tabs