routeProvider ng-view と 2 つのコントローラーを使用して 2tabs アプリを作成しようとしています。最初のタブはユーザー フォームになります。2番目のタブで、ユーザーが検証メッセージで入力した内容をユーザーに表示したいと思います。
ルーティング
project.config(["$routeProvider",function($routeProvider)
{
$routeProvider.
when('/', {controller:'Ctrl1', templateUrl:'tab_1.html'}).
when('/tab1', {controller:'Ctrl1', templateUrl:'tab_1.html'}).
when('/tab2', {controller: 'Ctrl2', templateUrl:'tab_2.html'}).
データを保存するには、ファクトリを使用します
project.factory('userService', function(){
return{valids: {}}
})
そして、私の2つのコントローラーでそれを呼び出します
project.controller('Ctrl1', ['$scope', '$rootScope', 'userService', function(scope, rootScope, userService){
scope.data=userService;
そして、コントローラーhtmlテンプレートに変数を割り当てます
ng-model="data.input1"
ページ (tab1) がロードされた後、入力の $dirty および $invalid 値にアクセスできます。
scope.form.input.$invalid;
しかし、ユーザーがコントローラー1のフラッシュを理解しているため、ユーザーがタブ2に切り替えると、工場データと $on('$routeChangeStart' function
問題は、これらの $dirty および無効な変数を保存/送信/共有し、2 番目のコントローラーでそれらにアクセスするための最良かつ正しい方法は何ですか? 角度のある方法でそれを行う方法は?
Mb 私はそれらをファクトリ データに追加する必要があります。
scope.data.valids.input_invalid = scope.form.input.$invalid;
scope.data.valids2.input_invalid = scope.form.input2.$invalid;
または、コントローラー(ファクトリー/ディレクティブ?)を追加しますか?
または、controller2/2 スコープに検証関数 (コントローラー/ファクトリー/ディレクティブ?) を手動で記述しますか?