gpt4 book ai didi

javascript - 带有 ng-switch 的 Angular 形式

转载 作者:数据小太阳 更新时间:2023-10-29 04:37:10 26 4
gpt4 key购买 nike

当我得到一个名称来de form时,我试图从 Controller 的范围中得到一个表单对象。它工作正常,但如果我使用 ng-switch 创建表单,则该表单永远不会显示在范围内。

View

<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>

Controller

app.controller('MainCtrl', function($scope) {
$scope.type = 1;

$scope.showScope = function(){
console.log($scope);
};
});

如果我删除 ng-switch,我可以从 $scope 中看到属性“theForm”作为表单 obj。

知道怎么做。我不想让这两种形式具有不同的名称并使用 ng-show。

这是“不工作”的例子 http://plnkr.co/edit/CnfLb6?p=preview

最佳答案

这是因为 ngSwitch 创建了新的作用域。 (如果您查看获取 console.log 的范围的 $$childHead 值,您可以在其中看到 theForm。这是 ngSwitch 作用域)。

如果表单总是同名,您可以简单地将 ngSwitches 放在表单中:

<form name="theForm">
<div ng-switch on="type">
<div ng-switch-when="1">
<label>Form 1</label>
<input type="text"/>
</div>
<div ng-switch-when="2">
<label>Form 2</label>
<input type="text"/>
</div>
</div>
</form>

关于javascript - 带有 ng-switch 的 Angular 形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16367778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com