对所示元素执行Angular.js-controller方法



如何在显示的元素上执行controllers方法。我有一个选项卡,我想在用户打开选项卡时加载数据,如果我使用ng init,信息会在页面加载后加载。

var systemSettingsController = manageApp.controller("SystemSettingsController", [
    "$scope", function($scope) {
        $scope.tab = 1;
        $scope.initTab = function(tab) {
            $scope.tab = tab;
        };
    }
]);
var emailManagementController = manageApp.controller("EmailManagementController", function($scope, $http) {
        $scope.smtpServer = "";
        $scope.smtpLogin = "";
        $scope.smtpPassword = "";
        this.init = function() {
            $http.get("/api/EmailSettings")
                .then(function(res) {
                    var obj = angular.fromJson(res.data);
                    $scope.smtpServer = obj["Email.SmtpServer"];
                    $scope.smtpLogin = obj["Email.SenderAddress"];
                    $scope.smtpPassword = obj["Email.SenderPassword"];
                });
        };
...

我想要在不使用ng init的情况下执行方法init(EmailManagementController),并且当这个元素显示在屏幕上时,也就是说,它的显示将变为一个不同于none的属性。

tryhttps://github.com/rpocklin/ui-router-tabs

基本上,每个选项卡(作为视图)都与其控制器相关联。

$stateProvider.state('user', {
      url:         '',
      controller: 'UserCtrl',
      templateUrl: 'example.html'
    }).state('user.settings', {
      url:         '/user/settings',
      templateUrl: 'user/settings.html'
    })

当选项卡(视图)激活时,控制器初始化

最新更新