有没有办法获得范围的所有形式?

时间:2014-03-03 11:12:40

标签: angularjs

如果我在一个范围内附加了多个表单,是否有办法在不知道所有名称的情况下通过所有表单?

我想要这样,所以我可以询问用户是否希望在不保存更改的情况下离开。

2 个答案:

答案 0 :(得分:1)

您可以检查$ scope上的所有对象,看看它们是否具有特定于表单的$addControl函数:

angular.forEach($scope,function(item){
       if(item &&  typeof(item.$addControl) != "undefined"){
          console.log(item);
       }
});

请参阅plunk

答案 1 :(得分:1)

一个选项是检查$scope属性的构造函数名称,如果一个等于FormController,那么您知道它是一个表单。像这样:

function findForms() {        
    angular.forEach($scope, function(item){             
       if(item && item.constructor.name == 'FormController'){
          console.log(item);
       }
    });
}

有一个有效的JSFiddle