上下文:
我正在使用选项卡式内容在AngluarJS中构建一个向导,其中每个选项卡都是向导中的一个步骤。通过laravel控制器从db检索步骤,并使用ng-repeat构建向导。每个选项卡都包含一个刀片视图,该视图由laravel控制器呈现,然后使用ng-bind-html包含在表单中。
简化的html:
<div class="tab-content">
<div ng-repeat="task in task_list" class="tab-pane" id="tab{{task.step}}">
<div ng-bind-html="task.rendered_view"></div>
</div>
</div>
问题:
在向导的每个步骤中,我需要验证表单内容 - 理想情况下通过Angular POSTing到laravel控制器然后显示返回的错误。但是,由于输入在rendered_view中,我无法使用ng-model检索它们以在AngularJS中绑定它们。
我对Angular很新,所以可能会遗漏一些明显但我无法找到解决方案。关于包含观点的不同方法的任何建议?还是一种不同的验证方法?表单提交按钮将所有选项卡的输入发布到控制器,但向导结束时的最终提交工作正常,但我想在中间步骤中包含验证。
答案 0 :(得分:0)
我可能误解了这个问题,但也许可以通过在渲染视图中使用ng-init
来解决。
因此,如果渲染的视图看起来像这样:
<div ng-init='validateReponses()'>
<span>Your inputs and other content here</span>
</div>
然后每次将div插入DOM时都会运行validateResponses函数。
编辑:发帖后我发现我不确定ng-bind-html是否创建了新范围。从文档来看,我认为它没有,但如果确实如此,那么你可以改为调用$parent.validateResponses()
。