在單頁角的應用程序,我有一個控制器,它充當選項卡處理機3個屏幕:在AngularJS中,在一個ng-click中有兩個調用是可接受的方法嗎?
app.controller('tabCtrl', function ($scope, getName) {
$scope.tabs = {
issue_list: {'id': 'issue_list', 'title': 'Issues reported'},
issue_report: {'id': 'issue_report', 'title': 'Report issue'},
user_prefs: {'id': 'user_prefs', 'title': 'Your preferences'}
};
$scope.tab = $scope.tabs.issue_list;
$scope.activate = function(myid) {
if (myid in $scope.tabs) {
$scope.tab = $scope.tabs[myid];
}
};
});
由於我需要激活用戶經由另一控制器成功提交數據後的選項卡之一:
app.controller('issueCtrl', function ($scope, $http, server, getName) {
//lots of data-server stuff here
});
因爲它會從不同的地方需要,我正要改寫「tabCtrl
」作爲service
,以避免整個calling one controller from another事情。不過在此之前我剛剛打電話從點擊兩個控制器:
<button id="raise" ng-click="addIssue();activate('issue_list')" type="button">send now</button>
這是可以接受的AngularJS的做法呢?看起來有點笨拙,但我是Angular的新手,有截止日期,而且這只是「正常工作」。
感謝邁克 - 標籤的角度bootstrap UI代碼很好,內容豐富。當我們有時間整理時,我一定會重新審視它。 –