I can't remember where I read it, but it's something to with bound
properties can't have any content in front of them, it's the same reason
you need the _setColorStyle type functions. I guess the polymer parser only
looks at the start of the content for properties.
On Thursday, 7 May 2015 13:03:26 UTC+1, Thad Humphries wrote:
>
> Well I'll be... Wow!
>
> This is Daniel's fav-color element. Daniel likes the color red.
>
>
> Thank you again. What gave you that idea? Is there something in the
> migration doc or elsewhere that I'm missing?
>
> For completeness sake, here is the new fav-color.html (my intent is to put
> all of these on GitHub when I'm finished).
>
> <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.
> <span>[[owner]]</span> 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>
>
>
> On Thursday, May 7, 2015 at 7:54:23 AM UTC-4, Robert Stone wrote:
>>
>> Have you tried <span>[[owner]]</span> ?
>>
>> On Thursday, 7 May 2015 12:51:10 UTC+1, Thad Humphries wrote:
>>>
>>> Oh yes! That works. Now I get
>>>
>>> This is Daniel's fav-color element. [[owner]] likes the color red.
>>>
>>>
>>> Thanks. I had tried it outside once, but then I was still trying double
>>> bracket and double mustache substitution.
>>>
>>> Any ideas on how to get the owner property to repeat like it did in 0.5?
>>>
>>> On Thursday, May 7, 2015 at 7:38:58 AM UTC-4, Robert Stone wrote:
>>>>
>>>> OK, I can see the problem now. Your setColorStyle needs to be declared
>>>> 'outside' of the properties block
>>>>
>>>> On Thursday, 7 May 2015 12:31:02 UTC+1, Thad Humphries wrote:
>>>>>
>>>>> 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/09b28089-80d4-4925-831d-77dbaaca9eef%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.