No, I got that. Maybe I'm going a bridge too far for Polymer 0.8. I'm
trying to adapt the examples 0.5's "Polymer in 10 Minutes
<https://www.polymer-project.org/0.5/docs/start/creatingelements.html>" to
0.8, in this case the fav-color.html example. What I've written is
<link rel="import" href="../polymer/polymer.html">
<dom-module id="fav-color">
<style>
.owner { font-weight: bold }
</style>
<template>
This is <span class="owner">[[owner]]</span>'s fav-color element.
[[owner]] likes the color <span
style$="{{setColorStyle(color)}}">[[color]]</span>.
</template>
</dom-module>
<script>
Polymer({
is: 'fav-color',
properties: {
owner: {
type: String,
value: "Daniel"
},
color: {
type: String,
value: "red"
},
setColorStyle: function(color) {
return "color: " + color;
}
}
});
</script>
That results in:
This is Daniel's fav-color element. [[owner]] likes the color red.
And the message "Uncaught TypeError: this.setColorStyle is not a
function" in the console. (Note the word red has not been colored.)
Should I call it differently from within a <template>? But I guess that by
indicating your function is meant to be private that you are calling it
from within the <template>.
Maybe the problem is with color being both a property and in this funtion a
parameter. Maybe it's related to 0.8 lacking repeat binding, though I'm not
trying to repeat array elements, but use owner and color twice. Note that
owner does not get a second replacement.
On Thursday, May 7, 2015 at 5:33:14 AM UTC-4, Robert Stone wrote:
>
> Did you follow Michaels example correctly ? The key bit is the declararion
> of the functionn that computes the property value:
>
> backgroundColorStyle: function(colour) {
> return "background-color: " + colour;
> }
>
> You need to include this inside the Polymer({}) declaration block which I
> guess wasn't completely clear, so:
>
> Polymer({
> is: "my-element",
> properties: {
> myproperty: String
> },
> backgroundColourStyle: function(colour) {
> return "background-color: " + colour;
> }
> });
>
> Your error message suggests you don't have this function. For me, that
> works perfectly on Chrome.
>
> For what it's worth, I named the function _backgroundColourStyle to 'hint'
> that it was an internal function and not part of the API - I don't like
> that I have to do this (expose the function publicly) but it seems to be
> the way polymer works.
>
> Rob
>
> On Wednesday, 6 May 2015 21:04:31 UTC+1, Thad Humphries wrote:
>>
>> When I try this, the Chrome console reports, "Uncaught TypeError:
>> this.backgroundColorStyle is not a function"
>>
>> On Tuesday, April 14, 2015 at 5:44:23 PM UTC-4, Michael Bleigh wrote:
>>>
>>> 0.8 no longer has interpolation. You'll need to use annotated computed
>>> properties instead:
>>> https://www.polymer-project.org/0.8/docs/devguide/data-binding.html#annotated-computed
>>>
>>> For instance
>>>
>>> <h1 style$="{{backgroundColorStyle(colour)}}">Hello World!</h1>
>>>
>>> {
>>> backgroundColorStyle: function(colour) {
>>> return "background-color: " + colour;
>>> }
>>> }
>>>
>>> On Tuesday, April 14, 2015 at 2:09:35 PM UTC-7, Robert Stone wrote:
>>>>
>>>> Just migrating a very simple 0.5 example app over to 0.8.
>>>>
>>>> For 0.5 the following worked:
>>>> <h1 id="greeting" _style="background-color: {{colour}}">Hello World
>>>> !</h1>
>>>>
>>>> As I understand it, for 0.8 I need to do:
>>>> <h1 id="greeting" style$="background-color: {{colour}}">Hello World
>>>> !</h1>
>>>>
>>>> However this doesn't work as the bound property value doesn't get
>>>> inserted. If I remove the 'background-color:' part then I can see my bound
>>>> property value being correctly inserted.
>>>>
>>>> I've worked my way through the migration guide and can't find anything
>>>> that might indicate why this isn't working so was hoping someone on here
>>>> might be able to help.
>>>>
>>>> Cheers
>>>> Rob
>>>>
>>>
Follow Polymer on Google+: plus.google.com/107187849809354688692
---
You received this message because you are subscribed to the Google Groups
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/polymer-dev/4de1ca5e-64fa-4cf0-906a-bd5b84e6ce50%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.