2013-04-29 3 views
0

Есть функция, которая идет как $ .each (scope.model)? Функция, которая пересекает все модели в рамках области?Angular.js Traversal

Кажется, я не могу найти ответ и подумал, может быть, я должен попробовать.

Спасибо!

-январь


EDIT:

Так я играл вокруг кода и нашел обходной путь на этом.

Fiddle here.

function ResetScope(scope){ 
    $(scope).each(function() { 
     if(!(this instanceof Function)){   
      for (var key in this) { 
       if(key.indexOf("$") !== -1 || key.indexOf("this") !== -1) 
        continue; 
       else 
        if(key instanceof Function){ 
         continue; 
        }else if(this[key].indexOf("function") !== -1){       
         continue; 
        }else{ 
         alert(this[key]); 
         this[key] = ""; 
         console.log(this); 
        } 
      } 
     } 
    }); 
    return scope; 
} 

Единственное, что не так уж удивительным является то, что, когда у вас есть переменная с «функцией» в его названии, это может также быть отфильтрованы. Ну, по крайней мере на данный момент, этот фрагмент работает. Для тех, у кого есть ответы, не стесняйтесь публиковать свой ответ. Может быть полезно другим.

+0

это нужно быть рекурсивными? –

+0

Это может быть. Но это не требование. Мое использование для этого - сбросить все значения модели области до значения по умолчанию, возможно, пустую строку или неопределенное состояние. – jankoichi

+0

угловой.forEach (переменная, функция (значение, ключ) {}); –

ответ

0

Для справки, инструмент Batarang Брайана есть этот код в appInspect.js:

var thisScope = angular.element(this).scope(); 
var models = {}; 
for (prop in thisScope) { 
    if (thisScope.hasOwnProperty(prop) && prop !== 'this' && prop[0] !== '$') { 
     models[prop] = thisScope[prop]; 
    } 
} 
var str = JSON.stringify(models); 
+0

Batarang! Почему я об этом не подумал? Спасибо, Марк! – jankoichi