如何对显示的元素执行控制器方法。 我有一个标签,我想在用户打开标签时加载数据,如果我使用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"];
});
};
...
我想要执行方法init(EmailManagementController)而不使用ng-init,并且当此元素显示在屏幕上时,也就是说,它的显示将更改为与none不同的属性。
答案 0 :(得分:0)
尝试https://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'
})
控制器在标签(视图)激活时初始化