الرسائل 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 | وصف الخطأ. |