0

単一ページの 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が初めてで、締め切りがあり、これは「うまくいきます」.

4

2 に答える 2