如何在显示的元素上执行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'
})
当选项卡(视图)激活时,控制器初始化