mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-04-20 14:50:59 +00:00
remove the relience of parser an special self object, now passing generic self
This commit is contained in:
parent
0e88e35e5c
commit
0d87208553
4 changed files with 11 additions and 19 deletions
|
|
@ -17,7 +17,7 @@ Lexer.OPERATORS = {
|
|||
'/':function(self, a,b){return a/b;},
|
||||
'%':function(self, a,b){return a%b;},
|
||||
'^':function(self, a,b){return a^b;},
|
||||
'=':function(self, a,b){return self.scope.set(a, b);},
|
||||
'=':function(self, a,b){return setter(self, a, b);},
|
||||
'==':function(self, a,b){return a==b;},
|
||||
'!=':function(self, a,b){return a!=b;},
|
||||
'<':function(self, a,b){return a<b;},
|
||||
|
|
@ -152,7 +152,7 @@ Lexer.prototype = {
|
|||
var fn = Lexer.OPERATORS[ident];
|
||||
if (!fn) {
|
||||
fn = function(self){
|
||||
return self.scope.get(ident);
|
||||
return getter(self, ident);
|
||||
};
|
||||
fn.isAssignable = ident;
|
||||
}
|
||||
|
|
@ -372,7 +372,7 @@ Parser.prototype = {
|
|||
for ( var i = 0; i < argsFn.length; i++) {
|
||||
args.push(argsFn[i](self));
|
||||
}
|
||||
return fn.apply(self.state, args);
|
||||
return fn.apply(self, args);
|
||||
};
|
||||
return function(){
|
||||
return fnInvoke;
|
||||
|
|
@ -551,12 +551,12 @@ Parser.prototype = {
|
|||
this.consume("}");
|
||||
return function(self) {
|
||||
return function($){
|
||||
var scope = createScope(self.state);
|
||||
var scope = createScope(self);
|
||||
scope['$'] = $;
|
||||
for ( var i = 0; i < args.length; i++) {
|
||||
scope.$set(args[i], arguments[i]);
|
||||
setter(scope, args[i], arguments[i]);
|
||||
}
|
||||
return statements({scope:{get:scope.$get, set:scope.$set}});
|
||||
return statements(scope);
|
||||
};
|
||||
};
|
||||
},
|
||||
|
|
@ -680,11 +680,11 @@ Parser.prototype = {
|
|||
}
|
||||
return function(self) {
|
||||
var Entity = self.datastore.entity(entity, defaults);
|
||||
self.scope.set(entity, Entity);
|
||||
setter(self, entity, Entity);
|
||||
if (instance) {
|
||||
var document = Entity();
|
||||
document['$$anchor'] = instance;
|
||||
self.scope.set(instance, document);
|
||||
setter(self, instance, document);
|
||||
return "$anchor." + instance + ":{" +
|
||||
instance + "=" + entity + ".load($anchor." + instance + ");" +
|
||||
instance + ".$$anchor=" + angular['String']['quote'](instance) + ";" +
|
||||
|
|
|
|||
|
|
@ -60,14 +60,7 @@ function expressionCompile(exp){
|
|||
// TODO(remove this hack)
|
||||
function parserNewScopeAdapter(fn) {
|
||||
return function(){
|
||||
var self = this;
|
||||
return fn({
|
||||
state: self,
|
||||
scope: {
|
||||
set: function(key, value){ return setter(self, key, value);},
|
||||
get: function(key) { return getter(self, key); }
|
||||
}
|
||||
});
|
||||
return fn(this);
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -198,10 +198,9 @@ angularDirective("ng-watch", function(expression, element){
|
|||
return function(element){
|
||||
var self = this;
|
||||
new Parser(expression).watch()({
|
||||
scope:{get: self.$get, set: self.$set},
|
||||
addListener:function(watch, exp){
|
||||
self.$watch(watch, function(){
|
||||
return exp({scope:{get: self.$get, set: self.$set}, state:self});
|
||||
return exp(self);
|
||||
}, element);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ function valueAccessor(scope, element) {
|
|||
validateScope = extend(new (extend(function(){}, {prototype:scope}))(), {$element:element});
|
||||
error = required && !value ?
|
||||
"Required" :
|
||||
(value ? validator({state:validateScope, scope:{get:validateScope.$get, set:validateScope.$set}}, value) : null);
|
||||
(value ? validator(validateScope, value) : null);
|
||||
elementError(element, NG_VALIDATION_ERROR, error);
|
||||
lastError = error;
|
||||
if (error) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue