ng-在页面中包含两次相同的部分页面

时间:2015-03-18 11:30:46

标签: javascript html angularjs html5

我有一个部分html文件说test.html,我希望它包含在主页中说main.html两次。我正在我的部分文件中的文本框上进行ng-pattern。它没有应用到我的主页面。请在下面找到示例并帮助我。

test.html(部分)

<form name="testform">
    <div>
        <input name="firstname" ng-pattern="/^[a-zA-Z0-9]+$/">
    </div>          
</form> 

main.html中

<div>
    <div>
        <ng-include src="'test.html'"></ng-include>
        <button type="button" ng-show="testform.firstname.$error.pattern==false">
    </div>
    <div>
        <ng-include src="'test.html'"></ng-include>
        <button type="button" ng-show="testform.firstname.$error.pattern==false">
    </div>
</div>

按钮ng-show只能处理一个div,而不是同时处理这两个div如果我使用$ parent作为部分表单名称。

请帮助我找到我遗失的内容。

1 个答案:

答案 0 :(得分:1)

问题是您引用了相同的DOM对象。 通过specyfying name并验证它,您可以调用两次,相同的表单和相同的属性名称。 Angular曾经认为它完成了它的工作。 我认为不打算这样做,因为你可以创建两个表单。 通过添加额外的类或更改至少表单名称并使用表单名称包装ng-include,您可以解决此问题:

test.html
    <div>
        <input name="firstname" ng-pattern="/^[a-zA-Z0-9]+$/">
    </div>     

main.html
<div>
    <div>
        <form name="testform1">
            <ng-include src="'test.html'"></ng-include>
        </form>
        <button type="button" ng-show="testform1.firstname.$error.pattern==false">
    </div>
    <div>
        <form name="testform2">
            <ng-include src="'test.html'"></ng-include>
        </form>
        <button type="button" ng-show="testform2.firstname.$error.pattern==false">
    </div>
</div>

或者,您可以使用表单创建两个视图,并相应地包含它们。