mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-05-19 20:01:52 +00:00
remove the uneeded call to createScope when evaluating expressions
This commit is contained in:
parent
fa0702bad1
commit
0e88e35e5c
3 changed files with 37 additions and 4 deletions
32
scenario/perf.html
Normal file
32
scenario/perf.html
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="style.css"/>
|
||||||
|
<script type="text/javascript" src="../src/angular-bootstrap.js#autobind"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function PerfCntl(){}
|
||||||
|
PerfCntl.prototype = {
|
||||||
|
createItems: function(){
|
||||||
|
var items = [];
|
||||||
|
for ( var i = 0; i < 100; i++) {
|
||||||
|
var item = {
|
||||||
|
name: "" + Math.random(),
|
||||||
|
parts: [Math.random(), Math.random()]
|
||||||
|
};
|
||||||
|
items.push(item);
|
||||||
|
}
|
||||||
|
return items;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body ng:init="$window.$scope = this; items = createItems()" ng-controller="PerfCntl">
|
||||||
|
<input type="text" name="text"/>
|
||||||
|
<hr/>
|
||||||
|
<ul>
|
||||||
|
<li ng-repeat="item in items.$filter('').$orderBy('name')">
|
||||||
|
{{item.name}} {{item.parts.join(', ')}}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -60,11 +60,12 @@ function expressionCompile(exp){
|
||||||
// TODO(remove this hack)
|
// TODO(remove this hack)
|
||||||
function parserNewScopeAdapter(fn) {
|
function parserNewScopeAdapter(fn) {
|
||||||
return function(){
|
return function(){
|
||||||
|
var self = this;
|
||||||
return fn({
|
return fn({
|
||||||
state: this,
|
state: self,
|
||||||
scope: {
|
scope: {
|
||||||
set: this.$set,
|
set: function(key, value){ return setter(self, key, value);},
|
||||||
get: this.$get
|
get: function(key) { return getter(self, key); }
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -297,7 +297,7 @@ var angularFunction = {
|
||||||
return expression;
|
return expression;
|
||||||
} else if (expression){
|
} else if (expression){
|
||||||
return function($) {
|
return function($) {
|
||||||
return createScope($).$eval(expression);
|
return expressionCompile(expression).apply($);
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
return identity;
|
return identity;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue