【发布时间】:2014-08-25 14:39:16
【问题描述】:
我有一个控制器,它使用 2 ng-include 更改其视图(尝试了文件和脚本)。一个用于查看,另一个用于编辑屏幕。
<div class="content-area">
<div class='row'>
<div class="cs-info">
<fp-info-bar config="headerConfig"></fp-info-bar>
<ng-include src="currentTemplate"></ng-include>
</div>
</div>
视图模板没有输入。编辑模板有一个表单,4 ng-form,它们自己包含输入和自定义指令。
<ng-form name='premisesAddressForm' attempt>
<div has-permission='CustomerDetailEditOverrideAddressValidation'>
<input type="checkbox" ng-model="isPremisesAutoCorrectDisabled"><span>Turn off Auto Correct</span>
</div>
<fp-address-edit
states="states"
ng-model='customer.PremisesAddress'
on-change="validateAddress(customer.PremisesAddress, premisesAddressForm, isPremisesAutoCorrectDisabled)">
</fp-address-edit>
</ng-form>
数据被成功填充,并且在编辑模式下使用 in 指令也可以正常工作。
问题:当我尝试在父控制器上保存数据并检查范围时,我没有在编辑模板上找到任何表单(前提地址表单)或其他输入字段。即这个$scope.premisesAddressForm 不存在。为了清楚起见,保存按钮在同一个模板上,并且绑定到父控制器上的功能,这没有问题。我尝试像这样在父控制器中创建对象,但没有用。
$scope.forms = {};
<ng-form name='froms.premisesAddressForm' attempt>
我知道 ng-include 创建它自己的范围(从父级继承),但我并不想在子级上获取父级对象,所以那里没有问题。我还阅读了一些在 ng-include 更改后,Angular 编译和更新范围的地方。对我来说,问题就在于此。我应该如何使它工作?如果我的方法都是错误的,请随时指出。我的目标是为不同的视图使用相同的控制器,使用不同的输入或没有。谢谢
【问题讨论】:
标签: angularjs angularjs-directive angularjs-scope