単一ページの Angular アプリでは、3 つの画面のタブ ハンドラーとして機能するコントローラーがあります。
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];
}
};
});
ユーザーが別のコントローラーを介してデータを正常に送信した後、タブの 1 つをアクティブにする必要があるため:
app.controller('issueCtrl', function ($scope, $http, server, getName) {
//lots of data-server stuff here
});
さまざまな場所から必要になるため、 ' tabCtrl
' を に書き直して、 1 つのコントローラーを別のものから呼び出すservice
全体を回避しようとしていました。しかし、その間、ワンクリックで両方のコントローラーを呼び出しました。
<button id="raise" ng-click="addIssue();activate('issue_list')" type="button">send now</button>
これは容認できる AngularJS のプラクティスですか? 少し不格好に思えますが、私はAngularが初めてで、締め切りがあり、これは「うまくいきます」.