জেড / পাগের সাথে আমি কীভাবে ইনলাইন জাভাস্ক্রিপ্ট রেন্ডার করতে পারি?


222

আমি জ্যাড (http://jade-lang.com/) ব্যবহার করে আমার পৃষ্ঠায় রেন্ডার করার জন্য জাভাস্ক্রিপ্ট পাওয়ার চেষ্টা করছি http://

আমার প্রকল্পটি এক্সপ্রেসের সাথে নোডজেএসে রয়েছে, আমি মাথার মধ্যে কিছুটা ইনলাইন জাভাস্ক্রিপ্ট লিখতে না পারা পর্যন্ত শ্রুতিমালা সঠিকভাবে কাজ করছে। এমনকি জেড ডক্সের উদাহরণ গ্রহণ করেও আমি কী অনুপস্থিত তা কাজ করতে পারি না?

জেড টেম্পলেট

!!! 5
html(lang="en")
  head
    title "Test"
    script(type='text/javascript')
      if (10 == 10) {
        alert("working")
      }
  body

ব্রাউজারে রেন্ডার করা HTML এর ফলাফল

<!DOCTYPE html>
<html lang="en">
<head>
  <title>"Test"</title>
  <script type="text/javascript">
    <if>(10 == 10) {<alert working></alert></if>}
  </script>
</head>
<body>
</body>
</html>

সোথিংস নিশ্চয়ই এখানে কোনও ধারণা মিস?


3
আপনি একটি বিন্দু দিতে ভুলে গেছেন .পর(type='text/javascript')
Warface

1
!!! 5doctype html
অবহেলা

উত্তর:


369

কেবল বিন্দুর পরে একটি 'স্ক্রিপ্ট' ট্যাগ ব্যবহার করুন।

script.
  var users = !{JSON.stringify(users).replace(/<\//g, "<\\/")}

https://github.com/pugjs/pug/blob/master/examples/dynamicscript.pug


ভাল সমাধান, তবে এটি কেবল <script>পরিবর্তে উত্পাদন করবে <script type="text/javascript">
ভোজ্টো

47
type="text/javascript"ট্যাগগুলির typeক্ষেত্রে ক্ষেত্রের জন্য ডিফল্ট মান <script>। আপনার এটি সেট করার দরকার নেই।
অ্যাডাম ফ্যাবিকি

মাল্টলাইন কোড সম্পর্কে কি? এইভাবে জেডে এমবেড করা অবস্থায় আমার জাভাস্ক্রিপ্টে সঠিক কোড ইন্ডেন্টেশন করার কোনও উপায় আছে কি?
মিসিংফ্যাক্টর

6
জেডের নীতি পরিবর্তিত হয়েছে, ইনলাইন স্ক্রিপ্ট ট্যাগটিতে এখন .যুক্ত হওয়া উচিত । সুতরাং script.জাতীয় আপনার ইন্ডেন্টযুক্ত ব্লক করে।
জোয়েটউইডল

4
এই উদাহরণটি স্ক্রিপ্ট ইনজেকশন দুর্বলতা। Github.com/visionmedia/jade/issues/1474
জেসন মেরিল

104

:javascriptফিল্টার সরানো হয়েছে সংস্করণ 7.0

ডক্স বলছেন আপনি একটি ব্যবহার করা উচিত scriptএখন ট্যাগ, একটি দ্বারা অনুসরণ .গৃহস্থালির কাজ এবং কোন পূর্ববর্তী স্থান।

উদাহরণ:

script.
  if (usingJade)
    console.log('you are awesome')
  else
    console.log('use jade')

সংকলিত হবে

<script>
  if (usingJade)
    console.log('you are awesome')
  else
    console.log('use jade')
</script>

সমস্ত জাভাস্ক্রিপ্ট ব্লকে কোনও বিন্দু সহ ট্যাগ স্ক্রিপ্ট, নিউলাইন ছাড়া এটি রেন্ডার করার কোনও উপায় আছে কি?
জোয়াকিংলেজান্টোস

@ জোকোয়িংলেজ যে আমি জানি না
ফিলিপ সাবিনো

55

নির্দিষ্ট ধরণের সাথে স্ক্রিপ্ট ট্যাগ ব্যবহার করুন, কেবল বিন্দুর আগে এটি অন্তর্ভুক্ত করুন:

script(type="text/javascript").
  if (10 == 10) {
    alert("working");
  }

এটি এতে সংকলন করবে:

<script type="text/javascript">
  if (10 == 10) {
    alert("working");
  }
</script>

1
ঠিক আছে script.
NoobTW

24

শুধুমাত্র স্ক্রিপ্ট ট্যাগ ব্যবহার করুন।

এর সাথে সমাধান |:

script
  | if (10 == 10) {
  |   alert("working")
  | }

বা একটি সহ .:

script.
  if (10 == 10) {
    alert("working")
  }

6
আমি সুপারিশ .। অন্যথায় আপনাকে |প্রতিটি লাইনে লিখতে হবে ।
ইলিয়াস করিম

2

আমার উত্তর তৃতীয় সংস্করণ:

এখানে ইনলাইন জেড জাভাস্ক্রিপ্টের একাধিক লাইনের উদাহরণ রয়েছে। আমি মনে করি না আপনি এটি ব্যবহার না করে এটি লিখতে পারেন -। এটি একটি ফ্ল্যাশ বার্তার উদাহরণ যা আমি আংশিকভাবে ব্যবহার করি। আশাকরি এটা সাহায্য করবে!

-if(typeof(info) !== 'undefined')
  -if (info)
    - if(info.length){
      ul
        -info.forEach(function(info){
          li= info
      -})
  -}

আপনি যে কোডটি আপনার প্রশ্নের মধ্যে কোডটি সংকলিত করার চেষ্টা করছেন তা কি?

যদি তা হয় তবে আপনার দুটি জিনিস দরকার নেই: প্রথমত, আপনাকে এটি জাভাস্ক্রিপ্ট / স্ক্রিপ্ট হিসাবে ঘোষণা করার দরকার নেই, আপনি টাইপ করার পরে কোডিং শুরু করতে পারেন -; দ্বিতীয়ত, টাইপ করার পরে আপনার বা -ifটাইপ করার দরকার নেই{} । যা জাদাকে বেশ মিষ্টি করে তোলে।

-------------- নীচে উত্তর উত্তর ---------------

এর ifসাথে প্রিপেন্ডিংয়ের চেষ্টা করুন -:

-if(10 == 10)
  //do whatever you want here as long as it's indented two spaces from
   the `-` above

এখানে অনেকগুলি জেড উদাহরণ রয়েছে:

https://github.com/visionmedia/jade/blob/master/examples/


ধন্যবাদ জন বিজোড় একক লাইনের জন্য এটি ব্যবহার করেছেন, তবে আমি '-' দিয়ে প্রিপেন্ড না করে একাধিক লাইন করে যাই তা দেখতে পাচ্ছি না। জেড হোমপেজ ( লিঙ্কটিতে আমি কী করতে চাইছি তার একটি উদাহরণ রয়েছে, তবে এটি সংকলন করে না I'm আমি সর্বশেষ প্রকাশটিও ব্যবহার করছি
J

সুতরাং আপনি যদি জিজ্ঞাসা করছেন যে একের নীচে জাভাস্ক্রিপ্ট কোডের একাধিক লাইন থাকবে?
অ্যালেন

ব্লু একই এখানে, আমি এই কাজ করতে পারেন না। আপনি গিথুব বিষয়গুলি জিজ্ঞাসা করা উচিত।
চিহ্নিত করুন

মার্ক, এখন জ্যাডের পরিবর্তে স্যাম স্টিফেনসনের ইকো ব্যবহার করতে চলে গেছে। আমি কেবল জেডকে পরীক্ষার জন্য দ্রুত ইউআই হিসাবে ব্যবহার করছিলাম।
জেএমউইটহিটকার

জেড 0.12.4 এর নীচে - এর সাথে জেএসকে ছাড় ছাড়াই আমাকে স্ক্রিপ্ট () এর অনুমতি দেয়।
রিচার্ড হল্যান্ড

1

মাল্টি-লাইনের সামগ্রীর জন্য জেড সাধারণত একটি "|" ব্যবহার করে তবে:

স্ক্রিপ্ট, স্টাইল এবং টেক্সারিয়া হিসাবে কেবল পাঠ্য গ্রহণ করে এমন ট্যাগগুলির শীর্ষস্থানীয় প্রয়োজন হয় না চরিত্র

এটি বলেছে, আপনার যে সমস্যাটি হচ্ছে তা আমি পুনরুত্পাদন করতে পারি না। আমি যখন কোনও কোডটি কোনও জেড টেম্পলেটে পেস্ট করি তখন এটি সঠিক আউটপুট উত্পন্ন করে এবং পৃষ্ঠা-লোডে একটি সতর্কতা নিয়ে আমাকে অনুরোধ করে।


0

:javascriptফিল্টার ব্যবহার করুন । এটি স্ক্রিপ্ট ট্যাগ তৈরি করবে এবং স্ক্রিপ্ট সামগ্রীগুলি সিডিটিএ হিসাবে ছাড়বে:

!!! 5
html(lang="en")
  head
    title "Test"
    :javascript
      if (10 == 10) {
        alert("working")
      }
  body

@Aaaidan আপনি ঠিক বলেছেন। এটি স্কেলেট দ্বারা সমর্থিত (আমি এটি কোনও সমস্যা ছাড়াই এখানে ব্যবহার করছি: github.com/cb372/فون-home / blob / master / src / main / webapp / WEB-INF/… ) তবে দেখে মনে হচ্ছে খাঁটি জ্যাড নেই এটি সমর্থন করুন, কারণ এটি এখানে তালিকাভুক্ত নয়: github.com/visionmedia/jade#features । এটা লজ্জার!
ক্রিস বি

হ্যাঁ, ভাল হত। শীর্ষস্থানীয় উত্তরে যেমনটি বলা হয়েছে, এটি একটি script.সূক্ষ্ম কাজ করে এবং এটি আইনী!!! 5
আয়েডান

0
script(nonce="some-nonce").
  console.log("test");

//- Workaround
<script nonce="some-nonce">console.log("test");</script>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.