أحدث البرامج التعليمية وتطوير الشبكة
 

AppML رسائل


الرسائل AppML وتطبيقات

عندما AppML على وشك تنفيذ إجراء، فإنه يرسل كائن التطبيق ($appml) إلى وحدة تحكم.

واحدة من خصائص الكائن التطبيق هو رسالة ($appml.message) ، واصفا حالة التطبيق.

اختبار هذه الرسالة، تمكنك من إضافة شفرة جافا سكريبت الخاصة بك، وهذا يتوقف على العمل.

مثال

function myController($appml) {
    if ($appml.message == "ready") {alert ("Hello Application");}
}
انها محاولة لنفسك »

الرسائل AppML

هذه قائمة الرسائل AppML التي يمكن أن تكون وردت:

رسالة وصف
"ready" أرسلت بعد AppML يبدأ، وعلى استعداد لتحميل البيانات.
"loaded" أرسلت بعد AppML يتم تحميل بشكل كامل، وعلى استعداد لعرض البيانات.
"display" أرسلت قبل يعرض AppML عنصر البيانات.
"done" أرسلت بعد الانتهاء AppML (finished displaying) .
"submit" أرسلت قبل تقدم AppML البيانات.
"error" أرسلت بعد AppML واجه خطأ.

و "ready" رسالة

عندما يكون هناك تطبيق AppML جاهز لتحميل البيانات، فإنه سيتم إرسال "ready" الرسالة.

هذا هو المكان المثالي لتقديم الطلب مع البيانات الأولية (start values) :

مثال

<div appml-controller="myController" appml-data="customers.js">
<h1>Customers</h1>
<p>{{today}}</p>
<table>
  <tr>
    <th>Customer</th>
    <th>City</th>
    <th>Country</th>
  </tr>
  <tr appml-repeat="records">
    <td>{{CustomerName}}</td>
    <td>{{City}}</td>
    <td>{{Country}}</td>
  </tr>
</table>
<p>Copyright {{copyright}}</p>
</div>

<script>
function myController($appml) {
    if ($appml.message == "ready") {
        $appml.today = new Date();
        $appml.copyright = "w3ii"
    }
}
</script>
انها محاولة لنفسك »

في المثال أعلاه، عندما $ appml.message هو "ready" ، وحدة تحكم يضيف خاصيتين جديدة إلى التطبيق ( today and copyright ) .

عند تشغيل التطبيق، متاحة لتطبيق خصائص جديدة.


و "loaded" رسالة

عندما يتم تحميل تطبيق AppML مع البيانات (ready to display) ، فإنه سيتم إرسال " loaded " رسالة.

هذا هو المكان المثالي لتقديم التغييرات (if necessary) إلى البيانات المحملة.

مثال

function myController($appml) {
    if ($appml.message == "loaded") {
        // compute your values here before display
    }
}

في "display" رسالة

في كل مرة AppML يعرض عنصر بيانات، فإنه سيتم إرسال " display " رسالة.

هذا هو المكان المثالي لتعديل الإخراج:

مثال

<div appml_app="myController" appml-data="customers.js">
<h1>Customers</h1>
<table>
  <tr>
    <th>Customer</th>
    <th>City</th>
    <th>Country</th>
  </tr>
  <tr appml-repeat="records">
    <td>{{CustomerName}}</td>
    <td>{{City}}</td>
    <td>{{Country}}</td>
  </tr>
</table>
</div>

<script>
function myController($appml) {
    if ($appml.message == "display") {
        if ($appml.display.name == "CustomerName") {
            $appml.display.value = $appml.display.value.substr(0,15);
        }
        if ($appml.display.name == "Country") {
            $appml.display.value = $appml.display.value.toUpperCase();
        }
    }
}
</script>
انها محاولة لنفسك »

في المثال أعلاه، "CustomerName" يتم اقتطاع إلى 15 حرفا، و "Country" وتحويلها إلى حالة العليا.


على "done" رسالة

عند انتهاء تطبيق AppML عرض البيانات، فإنه سيتم إرسال " done " الرسالة.

هذا هو المكان المثالي لتنظيف أو حساب بيانات التطبيق (بعد العرض).

مثال

<script>
function myController($appml) {
    if ($appml.message == "done") {
        calculate data here
    }
}
</script>

على "submit" رسالة

عندما يكون هناك تطبيق AppML على استعداد لتقديم البيانات، فإنه سيتم إرسال " submit " رسالة.

هذا هو المكان المثالي للتحقق من صحة المدخلات التطبيق.

مثال

<script>
function myController($appml) {
    if ($appml.message == "submit") {
        validate data here
    }
}
</script>

و "error" رسالة

إذا حدث خطأ، سوف AppML إرسال " error " الرسالة.

هذا هو المكان المثالي لمعالجة الأخطاء.

مثال

<script>
function myController($appml) {
    if ($appml.message == "error") {
        alert ($appml.error.number + " " + $appml.error.description)
    }
}
</script>

خصائص AppML

هذه قائمة لبعض خصائص AppML يشيع استخدامها:

خاصية وصف
$appml.message الحالة الراهنة للتطبيق.
$appml.display.name اسم حقل البيانات على وشك أن يتم عرضها.
$appml.display.value قيمة حقل البيانات على وشك أن يتم عرضها.
$appml.error.number رقم الخطأ.
$appml.error.description وصف الخطأ.