現在、以下を使用しています。
$scope.$$childHead.customerForm[firstName]
、 となることによって:
<form name="customerForm">
<input type="text" name="firstName"
ng-model="data.customer.firstName"
tabindex="1"
ng-disabled="!data.editable"
validationcustomer />
</form>
しかし、これは Chrome でのみ機能します。次に、次のことを試しました。
$scope.editCustomerForm[firstName]
、 となることによって:
<form name="customerForm" ng-model="editCustomerForm">
<input type="text" name="firstName"
ng-model="data.customer.firstName" tabindex="1"
ng-disabled="!data.editable"
validationcustomer />
</form>
動作しません。フォームは Foundation タブ内にあることに注意してください。どうすればアクセスできますかfirstName
?
編集: Foundation タブ内にある場合、form
は に追加されないようです。scope
誰かこれに対する解決策を持っていますか?
ベストアンサー1
入力にアクセスできない理由は、Foundationタブ(またはng-repeat
?)がスコープを分離するこれを解決する一つの方法は、コントローラーとして構文:
<div ng-controller="MyController as ctrl">
<!-- an example of a directive that would create an isolate scope -->
<div ng-if="true">
<form name="ctrl.myForm">
...inputs
Dirty? {{ctrl.myForm.$dirty}}
<button ng-click="ctrl.saveChanges()">Save</button>
</form>
</div>
</div>
次に、次のようにコード内で FormController にアクセスします。
function MyController () {
var vm = this;
vm.saveChanges = saveChanges;
function saveChanges() {
if(vm.myForm.$valid) {
// Save to db or whatever.
vm.myForm.$setPristine();
}
}