يي - طرق للقيام بتضمين عرض آخر في هذا العرض

StackOverflow https://stackoverflow.com/questions/3912118

  •  29-09-2019
  •  | 
  •  

سؤال

صفحة التصميم الخاصة بي:

<html>
 <body>
  <div id="container">
   <ul id="list"></ul>
  </div>
  <input id="update" value="update" />
 </body>
</html>

حيث تكون قائمة UL جزءًا سيتم تقديمها إما

  1. يتم تحميل الصفحة بأكملها
  2. عندما يتم النقر على زر التحديث ، يتم إصدار reqeust Ajax وسيتم تحديث innerhtml من طبقة الحاوية مع قائمة الاستجابة UL

أنا جديد على yii ولست متأكدًا من كيفية إعادة استخدام الجزئي في كلتا الحالتين في كلتا الحالتين ، ويبدو أن googled قليلاً ويبدو أن العناصر المستخدمة هي الحل ، لست متأكدًا من ذلك. أيه أفكار؟

شكرًا.

هل كانت مفيدة؟

المحلول

إذا فهمت سؤالك بشكل صحيح ، يمكنك القيام ببعض الأشياء ...

(أفترض أن لديك ملف عرض جزئي مثل View/Model/_list.php.)

يمكنك إما RenderPartial ('/model/_list') على تحميل الصفحة الأولية ، ثم في إجراء AJAX ، فقط استدعاء RenderPartial ('/model/_list') مرة أخرى.

أو يمكنك فقط الحصول على إجراء AJAX (يحتوي على RenderPartial ('/model/_list')) ، واتصل به في تحميل الصفحة باستخدام jQuery بدلاً من تقديمه في العرض (فقط اتصل بـ yii :: app ()-> getClientscript () -> RegisterScript في عرضك حيث تريد تحميله ، واستخدام $ .ajax () أو شيء لإجراء المكالمة).

الشيء الثالث الذي قمت به هو جعل وظيفة في وحدة التحكم (وليس عمل, ، مجرد طريقة عامة منتظمة) تُرجع إخراج RenderPartial (إرجاع $ this-> renderpartial ('/model/_list' ، array () ، true) على ما أعتقد). ثم في عرض التحميل الأولي ، أقوم بتردد هذه الوظيفة ، وفي إجراء Ajax ، أرددها قبل الاتصال بـ yii :: app ()-> end () ؛.

تعتبر الأدوات المصغّرة مفيدة عندما تقوم بتقديم القليل من التعليمات البرمجية الجزئية في جميع أنحاء الموقع ، حتى على صفحات من وحدات التحكم المختلفة. لذا ، إذا كانت هذه القائمة في شريط جانبي في جميع أنحاء الموقع ، فقد يكون من الأفضل إخراج عنصر واجهة مستخدمها ، وإلا فإنني سأستخدم وحدة تحكم النموذج التي تعمل معها. ما ستفعله مع القطعة هو نفسه كما تفعل مع العرض العادي - إما بناء البيانات في عنصر واجهة المستخدم وتقديم PartialView ، أو اتصل بها عبر Ajax. ما ستفعله على الأرجح من أجل Ajax هو النشر إلى وحدة التحكم التي تحصل عليها من البيانات ، لذلك ستظل بحاجة إلى إجراء Ajax. ستجعل القطعة أسهل في إسقاط أماكن مختلفة حول الموقع.

حظا طيبا وفقك الله!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top