Angularjs表单验证在指令上失败

时间:2015-10-09 21:20:33

标签: javascript angularjs angularjs-ng-form

我在页面上有一个表单,如果页面上有所有表单元素http://jsfiddle.net/nkanand4/6za8h8xg/1/,则表单已经过验证。

  public static Queue<Integer> mostCommonStringFinder (String document, int k){

    if (document == null){
        throw new IllegalArgumentException();
    }
    if (document.isEmpty()){
        throw new IllegalArgumentException("Document is empty");
    }   

    String [] wordHolder = document.split(" ");     

    HashMap<String, Integer> map = new HashMap<String, Integer>();


    for (String s : wordHolder){

        if (!map.containsKey(s)){
            map.put(s, 1);

        }
        else{
            int value = map.get(s);
            value++;
            map.put(s, value);
        }           
    }

    Queue<Integer> minHeap = new PriorityQueue<>();

    for ( int i = 0 ; i < k ; i++){

        minHeap.add(map.get(i));            
    }       

    for(int j = k ; j < map.size() ; j++){

        if(map.get(j) > minHeap.peek()){
            minHeap.poll();
            minHeap.add(map.get(j));
        }
    }

    return minHeap;

}

但是,如果我正在使用向导类型的表单,则会停止工作,其中每个步骤都使用指令http://jsfiddle.net/nkanand4/pe17afvq/2/填充。

<div ng-form="myform">
  <div>
    Name: <input type="text" ng-model="user.name" required name="input"/>
  </div>
</div>

如何解决这个问题的任何想法将不胜感激。感谢。

修改: 我最初开始使用ng-include但是放弃了这种方法,因为如果我使用它,数据不会从步骤1持续到步骤2再返回到步骤1.当你来回移动时会创建一个新范围的原因。因此,我需要一种方法将所有数据保存在范围属性下,例如$ scope.data.user.name,以便我可以在请求时传回$ scope.data。

2 个答案:

答案 0 :(得分:2)

不要自己编译HTML,你可以让Angular为你做好:

[a[0] for a in re.findall('((?P<caps>[A-Z])[a-z]*\\s(?P=caps)[a-z]*)', names)]

演示: http://jsfiddle.net/pe17afvq/4/

答案 1 :(得分:0)

终于把它整理好了。这被报告为angularJS问题跟踪器https://github.com/angular/angular.js/issues/7519上的错误。诀窍是在使用$ compile时返回的链接函数中使用克隆。

$compile(html)(scope, function(clone) {
   elem.empty().append(clone);
});

相应地更新了我的jsfiddle,它确实有效!