Где переменная hashKey, определенная в источнике для директивы ngRepeat?

Надеясь больше узнать о том, как работают более сложные директивы, я смотрел на источник ngRepeat. В строке 205 переменная hashFnLocals определяется как объект с свойством $id. Но этому свойству присваивается значение hashKey, которое я не вижу нигде. Определяется ли это в другом скрипте, к которому он получает доступ, когда они объединены во время процесса сборки?

2 ответа

Это функция, объявленная в angular.js:

function hashKey(obj) {
 var objType = typeof obj,
 key;

 if (objType == 'object' && obj !== null) {
 if (typeof (key = obj.$$hashKey) == 'function') {
 // must invoke on object to keep the right this
 key = obj.$$hashKey();
 } else if (key === undefined) {
 key = obj.$$hashKey = nextUid();
 }
 } else {
 key = obj;
 }

 return objType + ':' + key;
}


Он определен в apis.js, начинается в строке 16.

licensed under cc by-sa 3.0 with attribution.