mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-04-24 03:55:49 +08:00
refactor(bootstrap): Remove support for old bootstrap mechnanisms
Remove support for bootstrap detection using: * The element id * The element class. E.g. ``` <div id="ng-app">...</div> <div class="ng-app: module">...</div> ``` Removes reference to how to bootstrap using IE7 BREAKING CHANGE: If using any of the mechanisms specified above, then migrate by specifying the attribute `ng-app` to the root element. E.g. ``` <div ng-app="module">...</div> ``` Closes #8147
This commit is contained in:
committed by
Igor Minar
parent
9dce42b3c2
commit
666a3835d2
@@ -1314,46 +1314,26 @@ function getNgAttribute(element, ngAttr) {
|
||||
</example>
|
||||
*/
|
||||
function angularInit(element, bootstrap) {
|
||||
var elements = [element],
|
||||
appElement,
|
||||
var appElement,
|
||||
module,
|
||||
config = {},
|
||||
names = ['ng:app', 'ng-app', 'x-ng-app', 'data-ng-app'],
|
||||
options = {
|
||||
'boolean': ['strict-di']
|
||||
},
|
||||
NG_APP_CLASS_REGEXP = /\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;
|
||||
config = {};
|
||||
|
||||
function append(element) {
|
||||
element && elements.push(element);
|
||||
}
|
||||
// The element `element` has priority over any other element
|
||||
forEach(ngAttrPrefixes, function(prefix) {
|
||||
var name = prefix + 'app';
|
||||
|
||||
forEach(names, function(name) {
|
||||
names[name] = true;
|
||||
append(document.getElementById(name));
|
||||
name = name.replace(':', '\\:');
|
||||
if (element.querySelectorAll) {
|
||||
forEach(element.querySelectorAll('.' + name), append);
|
||||
forEach(element.querySelectorAll('.' + name + '\\:'), append);
|
||||
forEach(element.querySelectorAll('[' + name + ']'), append);
|
||||
if (!appElement && element.hasAttribute && element.hasAttribute(name)) {
|
||||
appElement = element;
|
||||
module = element.getAttribute(name);
|
||||
}
|
||||
});
|
||||
forEach(ngAttrPrefixes, function(prefix) {
|
||||
var name = prefix + 'app';
|
||||
var candidate;
|
||||
|
||||
forEach(elements, function(element) {
|
||||
if (!appElement) {
|
||||
var className = ' ' + element.className + ' ';
|
||||
var match = NG_APP_CLASS_REGEXP.exec(className);
|
||||
if (match) {
|
||||
appElement = element;
|
||||
module = (match[2] || '').replace(/\s+/g, ',');
|
||||
} else {
|
||||
forEach(element.attributes, function(attr) {
|
||||
if (!appElement && names[attr.name]) {
|
||||
appElement = element;
|
||||
module = attr.value;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (!appElement && (candidate = element.querySelector('[' + name.replace(':', '\\:') + ']'))) {
|
||||
appElement = candidate;
|
||||
module = candidate.getAttribute(name);
|
||||
}
|
||||
});
|
||||
if (appElement) {
|
||||
|
||||
Reference in New Issue
Block a user