@Kurtis Rader
well, I already removed all unescaped newline, and then they displaied fine.
thanks very much.


2014-03-25 23:09 GMT+08:00 Kurtis Rader <[email protected]>:

> Javascript string literals cannot contain a bare (i.e., unescaped
> newline). When jinja2 interpolates the values of article[0].title into the
> template you get a literal newline that confuses the javascript parser. See
> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals
>
> If you can guarantee that the value does not contain a single or double
> quote just use the '%r'|format() trick to escape the newline and
> carriage-return. But it would be safer to use a filter like the Flask
> tosjon filter mentioned by Markus in his reply (which I just now realized
> was a reference to Flask and not a Jinja2 feature). Alternatively, "import
> json" into your python and use the json.dumps() function.
>
>
> On Mon, Mar 24, 2014 at 10:42 PM, Zarey Chang <[email protected]> wrote:
>
>> may be i was wrong,I know the reason:
>> after format the article[0].title, the result contains invisible '\r\n'.
>> if alert article[0].title which contains '\r\n', the alert will fail.
>>
>> WTF good debug skill '{{%r}}', thanks sharing.
>>
>>
>> I will remove the '\r\n' this moment, it seems easy by googling way.
>> or you have some magic skill to replace the invisiable '\r\n' with '<br
>> \>'?
>>
>> thanks very much.
>>
>>
>>
>>
>> 2014-03-25 11:54 GMT+08:00 Zarey Chang <[email protected]>:
>>
>> Dont care that, article is array of instance of 'articel',so article[0]
>>> is the firest instance of article.(what bad i mistake,so sorry).
>>> ---
>>> tojson also cant work with me, the same error with you getting. so, give
>>> up this solution.
>>> ---
>>>
>>> Now i found that the code below really can't work:
>>> alert("&lt;p&gt;mysomesting&lt;/p&gt;");   or
>>> alert("<p>mysomesting</p>");
>>> this code work fine:
>>> alert("mysomestring");
>>>
>>> I think this may be the real reason for the problem.
>>>
>>>
>>>
>>>
>>> 2014-03-25 11:31 GMT+08:00 Kurtis Rader <[email protected]>:
>>>
>>> Your original problem statement was
>>>>
>>>> <script type="text/javascript">
>>>>       alert({{article.title}});
>>>> </script>
>>>>
>>>>
>>>> You now say that "article" is a dictionary like object with a member
>>>> named "0" that has a "title" attribute or member. Those things are not
>>>> equivalent.
>>>>
>>>> You cannot use "{{ article.title }}" as a synonym for "{{
>>>> article[0].title }}" unless your "article" object has overrides for the
>>>> normal double-underscore methods (which is very unlikely).
>>>>
>>>>
>>>> On Mon, Mar 24, 2014 at 7:59 PM, Zarey Chang <[email protected]> wrote:
>>>>
>>>>> @Kurtis Rader
>>>>>
>>>>> i'm sure the non-buildin type 'article' instance have 'title' 
>>>>> attribute.The
>>>>> 'article' is dict like, so I always use article[0].title instead.
>>>>> after format 'article[0]', information shown as below:
>>>>> ---
>>>>> <!--Article(key=Key(&#39;Article&#39;, 5905064635924480),
>>>>> title=u&#39;mytitlestring tag&#39;, type=u&#39;Translate&#39;)-->
>>>>> ---(use ' instead)
>>>>> <!--Article(key=Key('Article', 5905064635924480),
>>>>> title=u'mysomestring', type=u'Translate')-->
>>>>> ---
>>>>>
>>>>> if i'm sure article[0] contains title property, as:article[0].title
>>>>> print out 'mysomestring'.
>>>>> For the non-buildin type, how to alert article[0].title in javascript?
>>>>>
>>>>>
>>>>> @Markus Unterwaditzer
>>>>>
>>>>> Did you say that I must use json to dumping the non-buildin type for
>>>>> jinja2?
>>>>> if it is, I must redirect my focus to json way.
>>>>> (   but i think jinja2 could process alert("{{article[0].title}}"); in
>>>>> some other way.  )
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 2014-03-24 23:25 GMT+08:00 Kurtis Rader <[email protected]>:
>>>>>
>>>>>> The expansion of {{article.title}} is done by the jinja2 template
>>>>>> engine on the server before the javascript is executed on the client 
>>>>>> (i.e.,
>>>>>> the browser). So the fact you're using javascript to display the value is
>>>>>> not relevant. Either GAE is affecting jinja2 behavior or your "article"
>>>>>> object doesn't have a "title" attribute or member (if it's a dict like
>>>>>> object) or the value isn't what you expect. Try embedding the following 
>>>>>> in
>>>>>> your document:
>>>>>>
>>>>>> <!--
>>>>>> {{'%r'|format(article)}}
>>>>>> -->
>>>>>>
>>>>>>
>>>>>> That will embed a python representation of the "article" object as a
>>>>>> comment in the document. Then use your brower "view page source" command 
>>>>>> to
>>>>>> see what was embedded. For example, I did this for one of my objects and
>>>>>> got this:
>>>>>>
>>>>>> <!--
>>>>>> {&#39;last_changed_rfc3339&#39;: &#39;2014-03-24T15:04:01Z&#39;,
>>>>>> &#39;last_changed_rfc822&#39;: &#39;Mon, 24 Mar 2014 15:04:01
>>>>>> GMT&#39;,
>>>>>> ...
>>>>>> -->
>>>>>>
>>>>>>
>>>>>> Note that the &#39; is a single-quote, which if you make the
>>>>>> substitution yields the more familiar:
>>>>>>
>>>>>> {'last_changed_rfc3339': '2014-03-24T15:04:01Z',
>>>>>> 'last_changed_rfc822': 'Mon, 24 Mar 2014 15:04:01 GMT',
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Mar 24, 2014 at 7:31 AM, alex <[email protected]> wrote:
>>>>>>
>>>>>>> Hi guys,
>>>>>>>
>>>>>>> What i want like below:
>>>>>>> ---
>>>>>>> <script type="text/javascript">
>>>>>>>       alert({{article.title}});
>>>>>>> </script>
>>>>>>> ---
>>>>>>> this code block was writen in some.html using jinja2 template,
>>>>>>> working by GAE.
>>>>>>> it alert nothing, empty content on dialog.
>>>>>>> if I take the code below instead,it work fine:(but need pass extra
>>>>>>> variable article.title as "title")
>>>>>>> ---
>>>>>>> <script type="text/javascript">
>>>>>>>       alert({{title}});
>>>>>>> </script>
>>>>>>> ---
>>>>>>>
>>>>>>> so 1. ,jinja/jinja2 could only pass int, bool, and so on(these
>>>>>>> regular type), isn't it?
>>>>>>> 2. if I want pass the instance "article", do I must dump it by json?
>>>>>>> 3. Is any other way for code like article.title that passing to
>>>>>>> javascript?
>>>>>>> (some times i think this problem may be less relate with javascript.)
>>>>>>>
>>>>>>> thx,
>>>>>>>
>>>>>>>  --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "pocoo-libs" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to [email protected].
>>>>>>>
>>>>>>> To post to this group, send email to [email protected].
>>>>>>> Visit this group at http://groups.google.com/group/pocoo-libs.
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Kurtis Rader
>>>>>> Caretaker of the exceptional canines Junior and Hank
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to a topic in
>>>>>> the Google Groups "pocoo-libs" group.
>>>>>> To unsubscribe from this topic, visit
>>>>>> https://groups.google.com/d/topic/pocoo-libs/Hfu3r1ZOWuw/unsubscribe.
>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>> [email protected].
>>>>>>
>>>>>> To post to this group, send email to [email protected].
>>>>>> Visit this group at http://groups.google.com/group/pocoo-libs.
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Zarey C.Y. Chang
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "pocoo-libs" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> Visit this group at http://groups.google.com/group/pocoo-libs.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Kurtis Rader
>>>> Caretaker of the exceptional canines Junior and Hank
>>>>
>>>> --
>>>> You received this message because you are subscribed to a topic in the
>>>> Google Groups "pocoo-libs" group.
>>>> To unsubscribe from this topic, visit
>>>> https://groups.google.com/d/topic/pocoo-libs/Hfu3r1ZOWuw/unsubscribe.
>>>> To unsubscribe from this group and all its topics, send an email to
>>>> [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at http://groups.google.com/group/pocoo-libs.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>>
>>> --
>>> Zarey C.Y. Chang
>>>
>>
>>
>>
>> --
>> Zarey C.Y. Chang
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "pocoo-libs" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/pocoo-libs.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> Kurtis Rader
> Caretaker of the exceptional canines Junior and Hank
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "pocoo-libs" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/pocoo-libs/Hfu3r1ZOWuw/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/pocoo-libs.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Zarey C.Y. Chang

-- 
You received this message because you are subscribed to the Google Groups 
"pocoo-libs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/pocoo-libs.
For more options, visit https://groups.google.com/d/optout.

Reply via email to