Skip to content

Commit 6fd75c7

Browse files
committed
WARN (bind attribute) on component attributes, use parent as owner.
1 parent 766b822 commit 6fd75c7

File tree

4 files changed

+15
-11
lines changed

4 files changed

+15
-11
lines changed

.npmignore

+3-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
.gitmodules
77
.gitattributes
88
.npmignore
9-
9+
.vscode
1010
.travis.yml
1111

1212
build.js
@@ -16,7 +16,9 @@ test/
1616
src/
1717
builds/
1818
examples/
19+
ts-temp/
1920
/ref-**
2021
/projects
2122

2223

24+
tsconfig-build.json

package-lock.json

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

projects/expression/src/exports.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,6 @@ export const ExpressionUtil = {
6161
};
6262

6363
customUtil_register('expression', function(value, model, ctx, element, ctr, name, type, node){
64-
var owner = type === 'compo-attr' || type === 'compo-prop' ? ctr.parent : ctr;
64+
let owner = type === 'compo-attr' || type === 'compo-prop' ? ctr.parent : ctr;
6565
return expression_eval(value, model, ctx, owner, node);
6666
});

projects/mask-binding/src/utilities/bind.ts

+10-8
Original file line numberDiff line numberDiff line change
@@ -125,23 +125,24 @@ function create_refresher(type, expr, element, currentValue, attrName, ctr) {
125125

126126

127127
function bind (current, expr, model, ctx, element, ctr, attrName, type){
128+
let owner = type === 'compo-attr' || type === 'compo-prop' ? ctr.parent : ctr;
128129
var refresher = create_refresher(type, expr, element, current, attrName, ctr),
129-
binder = expression_createBinder(expr, model, ctx, ctr, refresher);
130+
binder = expression_createBinder(expr, model, ctx, owner, refresher);
130131

131-
expression_bind(expr, model, ctx, ctr, binder);
132+
expression_bind(expr, model, ctx, owner, binder);
132133

133134
Component.attach(ctr, 'dispose', function(){
134-
expression_unbind(expr, model, ctr, binder);
135+
expression_unbind(expr, model, owner, binder);
135136
});
136137
}
137138

138139
customUtil_register('bind', {
139140
mode: 'partial',
140141
current: null,
141142
element: null,
142-
nodeRenderStart: function(expr, model, ctx, el, ctr, type, node){
143-
144-
var current = expression_eval_safe(expr, model, ctx, ctr, node);
143+
nodeRenderStart: function(expr, model, ctx, el, ctr, attrName, type, node){
144+
let owner = type === 'compo-attr' || type === 'compo-prop' ? ctr.parent : ctr;
145+
let current = expression_eval_safe(expr, model, ctx, owner, node);
145146

146147
// though we apply value's to `this` context, but it is only for immediat use
147148
// in .node() function, as `this` context is a static object that share all bind
@@ -168,8 +169,9 @@ customUtil_register('bind', {
168169
return el;
169170
},
170171

171-
attrRenderStart: function(expr, model, ctx, el, ctr, type, node){
172-
return (this.current = expression_eval_safe(expr, model, ctx, ctr, node));
172+
attrRenderStart: function(expr, model, ctx, el, ctr, attrName, type, node){
173+
let owner = type === 'compo-attr' || type === 'compo-prop' ? ctr.parent : ctr;
174+
return (this.current = expression_eval_safe(expr, model, ctx, owner, node));
173175
},
174176
attr: function(expr, model, ctx, element, controller, attrName, type){
175177
bind(

0 commit comments

Comments
 (0)