2015-01-14 12:36:47 -08:00
|
|
|
<template>
|
2015-02-09 18:13:58 -08:00
|
|
|
<div id="boundChild" value="{{value}}" negvalue="{{!bool}}" attrvalue$="{{attrvalue}}" computedvalue="{{computedvalue}}" camel-case="{{value}}"></div>
|
2015-01-14 12:36:47 -08:00
|
|
|
</template>
|
|
|
|
|
<script>
|
|
|
|
|
Polymer({
|
2015-01-14 15:10:11 -08:00
|
|
|
is: 'x-basic',
|
2015-03-02 15:41:23 -08:00
|
|
|
propertyConfig: {
|
|
|
|
|
value: {
|
|
|
|
|
observer: 'valueChanged'
|
|
|
|
|
},
|
|
|
|
|
computedvalue: {
|
|
|
|
|
computed: 'computeValue(value)',
|
|
|
|
|
observer: 'computedvalueChanged'
|
|
|
|
|
},
|
2015-01-14 12:36:47 -08:00
|
|
|
notifyingvalue: {
|
|
|
|
|
type: Number,
|
2015-03-02 15:41:23 -08:00
|
|
|
notify: true,
|
|
|
|
|
computed: 'notifyingvalueChanged'
|
2015-01-14 12:36:47 -08:00
|
|
|
},
|
|
|
|
|
computednotifyingvalue: {
|
|
|
|
|
type: Number,
|
2015-03-02 15:41:23 -08:00
|
|
|
notify: true,
|
|
|
|
|
computed: 'computeNotifyingValue(notifyingvalue)'
|
2015-01-22 14:19:42 -08:00
|
|
|
},
|
2015-02-23 20:04:16 -08:00
|
|
|
computedFromMultipleValues: {
|
|
|
|
|
type: Number,
|
2015-03-02 15:41:23 -08:00
|
|
|
notify: true,
|
|
|
|
|
computed: 'computeFromMultipleValues(sum1, sum2, divide)',
|
|
|
|
|
observer: 'computedFromMultipleValuesChanged'
|
2015-02-23 20:04:16 -08:00
|
|
|
},
|
2015-02-09 18:13:58 -08:00
|
|
|
camelNotifyingValue: {
|
|
|
|
|
type: Number,
|
|
|
|
|
notify: true
|
|
|
|
|
},
|
2015-01-22 14:19:42 -08:00
|
|
|
readonlyvalue: {
|
|
|
|
|
type: Number,
|
|
|
|
|
readOnly: true,
|
2015-03-02 15:41:23 -08:00
|
|
|
notify: true,
|
|
|
|
|
observer: 'readonlyvalueChanged'
|
2015-01-14 12:36:47 -08:00
|
|
|
}
|
|
|
|
|
},
|
2015-03-02 15:41:23 -08:00
|
|
|
observers: {
|
|
|
|
|
'dep1 dep2 dep3': 'multipleDepChangeHandler'
|
2015-01-14 12:36:47 -08:00
|
|
|
},
|
|
|
|
|
valueChanged: function() {},
|
|
|
|
|
computeValue: function(val) {
|
|
|
|
|
return val + 1;
|
|
|
|
|
},
|
|
|
|
|
computedvalueChanged: function() {},
|
|
|
|
|
notifyingvalueChanged: function() {},
|
2015-01-22 14:19:42 -08:00
|
|
|
readonlyvalueChanged: function() {},
|
2015-01-14 12:36:47 -08:00
|
|
|
computeNotifyingValue: function(val) {
|
|
|
|
|
return val + 2;
|
2015-02-23 20:04:16 -08:00
|
|
|
},
|
|
|
|
|
computeFromMultipleValues: function(sum1, sum2, divide) {
|
|
|
|
|
return (sum1 + sum2) / divide;
|
|
|
|
|
},
|
2015-03-02 15:41:23 -08:00
|
|
|
computedFromMultipleValuesChanged: function() {},
|
|
|
|
|
multipleDepChangeHandler: function() {}
|
2015-01-14 12:36:47 -08:00
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<template>
|
2015-01-22 14:19:42 -08:00
|
|
|
<x-basic id="basic1"
|
|
|
|
|
value="{{boundvalue}}"
|
|
|
|
|
notifyingvalue="{{boundnotifyingvalue}}"
|
2015-02-09 18:13:58 -08:00
|
|
|
camel-notifying-value="{{boundnotifyingvalue}}"
|
2015-01-22 14:19:42 -08:00
|
|
|
computedvalue="{{boundcomputedvalue}}"
|
|
|
|
|
computednotifyingvalue="{{boundcomputednotifyingvalue}}"
|
|
|
|
|
readonlyvalue="{{boundreadonlyvalue}}">
|
|
|
|
|
</x-basic>
|
|
|
|
|
<x-basic id="basic2"
|
|
|
|
|
value="[[boundvalue]]"
|
|
|
|
|
notifyingvalue="[[boundnotifyingvalue]]"
|
|
|
|
|
computedvalue="[[boundcomputedvalue]]"
|
|
|
|
|
computednotifyingvalue="[[boundcomputednotifyingvalue]]">
|
|
|
|
|
</x-basic>
|
2015-01-14 12:36:47 -08:00
|
|
|
</template>
|
|
|
|
|
<script>
|
|
|
|
|
Polymer({
|
2015-01-14 15:10:11 -08:00
|
|
|
is: 'x-compose',
|
2015-03-02 15:41:23 -08:00
|
|
|
observers: {
|
2015-01-22 14:19:42 -08:00
|
|
|
boundvalue: 'boundvalueChanged',
|
2015-01-14 12:36:47 -08:00
|
|
|
boundnotifyingvalue: 'boundnotifyingvalueChanged',
|
|
|
|
|
boundcomputedvalue: 'boundcomputedvalueChanged',
|
2015-01-22 14:19:42 -08:00
|
|
|
boundcomputednotifyingvalue: 'boundcomputednotifyingvalueChanged',
|
|
|
|
|
boundreadonlyvalue: 'boundreadonlyvalueChanged'
|
2015-01-14 12:36:47 -08:00
|
|
|
},
|
|
|
|
|
boundvalueChanged: function() {},
|
|
|
|
|
boundnotifyingvalueChanged: function() {},
|
|
|
|
|
boundcomputedvalueChanged: function() {},
|
2015-01-22 14:19:42 -08:00
|
|
|
boundcomputednotifyingvalueChanged: function() {},
|
|
|
|
|
boundreadonlyvalueChanged: function() {}
|
2015-01-14 12:36:47 -08:00
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
|
2015-01-23 17:51:32 -08:00
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
Polymer({
|
|
|
|
|
is: 'x-reflect',
|
2015-03-02 15:41:23 -08:00
|
|
|
propertyConfig: {
|
2015-01-23 17:51:32 -08:00
|
|
|
reflectedobject: {
|
|
|
|
|
type: Object,
|
|
|
|
|
reflect: true
|
|
|
|
|
},
|
|
|
|
|
reflectedarray: {
|
|
|
|
|
type: Array,
|
|
|
|
|
reflect: true
|
|
|
|
|
},
|
2015-02-09 18:35:03 -08:00
|
|
|
reflectedNumber: {
|
2015-01-23 17:51:32 -08:00
|
|
|
type: Number,
|
|
|
|
|
reflect: true
|
|
|
|
|
},
|
|
|
|
|
reflectedstring: {
|
|
|
|
|
type: String,
|
|
|
|
|
reflect: true
|
|
|
|
|
},
|
|
|
|
|
reflectedboolean: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
reflect: true
|
|
|
|
|
},
|
|
|
|
|
reflecteddate: {
|
|
|
|
|
type: Date,
|
|
|
|
|
reflect: true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
</script>
|