当与角材料标签一起使用时,控制器调用两次

时间:2015-09-13 13:49:45

标签: angularjs angular-ui-router angular-material

当我使用角度材料标签时,我的控制器会被调用两次。

标签:

(function () {
    'use strict';

    angular
        .module('app.contact')
        .controller('ContactController', ContactController);

    function ContactController() {
        var vm = this;

        activate();

        function activate() {
          console.log('Contact Controller');
        }

    }
})();

(function () {
    'use strict';

    angular
        .module('app.home')
        .controller('HomeController', HomeController);

    function HomeController() {
        var vm = this;

        activate();

        function activate() {
          console.log('Home Controller');
        }

    }
})();

控制器:

(function () {
    'use strict';

    angular.module('app', [
    ])
        .config(configBlock);

    function configBlock($stateProvider, $urlRouterProvider) {
      $urlRouterProvider.otherwise("/home");

      $stateProvider
        .state('home', {
            url: "/home",
            templateUrl: "home.html",
            controller: 'HomeController',
            controllerAs: 'vm'
        })
        .state('contact', {
            url: "/contact",
            templateUrl: "contact.html",
            controller: 'ContactController',
            controllerAs: 'vm'
        });
    }

})();

州:

insertBefore()

Postman

2 个答案:

答案 0 :(得分:1)

这是因为您使用ui-view两次。

答案 1 :(得分:0)

我也有同样的问题 使用ng-include而不是ng-view

<md-tab label="Issues" >   
    <ng-include src="'/app/src/project/task/task.tpl.html'"></ng-include>
    <!-- <div ui-view></div> -->
</md-tab>