AngularJS中的数据绑定使用即时构建的视图

时间:2014-03-06 17:32:39

标签: javascript php angularjs validation laravel-4

上下文:

我正在使用选项卡式内容在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很新,所以可能会遗漏一些明显但我无法找到解决方案。关于包含观点的不同方法的任何建议?还是一种不同的验证方法?表单提交按钮将所有选项卡的输入发布到控制器,但向导结束时的最终提交工作正常,但我想在中间步骤中包含验证。

1 个答案:

答案 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()