フォームの名前を取得するときに、コントローラーのスコープからフォーム オブジェクトを取得しようとしています。正常に動作しますが、ng-switch でフォームを作成すると、フォームがスコープに表示されません。
景色
<body ng-controller="MainCtrl">
<div ng-switch on="type">
<form name="theForm" ng-switch-when="1">
<label>Form 1</label>
<input type="text"/>
</form>
<form name="theForm" ng-switch-when="2">
<label>Form 2</label>
<input type="text"/>
<input type="text"/>
</form>
</div>
<button ng-click="showScope()">Show scope</button>
</body>
コントローラー
app.controller('MainCtrl', function($scope) {
$scope.type = 1;
$scope.showScope = function(){
console.log($scope);
};
});
ng-switch を削除すると、$scope から "theForm" プロパティがフォーム obj として表示されます。
それを行う方法についてのアイデア。2 つのフォームに異なる名前を付けて ng-show を使用したくありません。
これが「機能しない」例です http://plnkr.co/edit/CnfLb6?p=preview