در حین انجام اعمال غیرهمزمان جاوا اسکریپتی مانند فراخوانیهای jQuery AJAX، برای مدیریت دریافت نتایج، عموما از یک سری callback استفاده میشود. برای مثال: $.get('http://site-url', function(data) {
//این تابع پس از پایان کار عملیات ایجکسی در آینده فراخوانی خواهد شد
});
تا اینجا مشکلی به نظر نمیرسد. اما مورد ذیل چطور؟ $.get('http://site-url/0', function(data0) {
// callback #1
$.get('http://site-url/1', ...
با پیشرفت HTML 5 و پدید آمدن چارچوبهای مختلف JavaScript توسعهی نرم افزارهای تک صفحه ای تحت وب (Single Page Applications) محبوب شده است. اخیرا مطالب خوبی در رابطه با AngularJS در وبسایت جاری منتشر شده است. KnockoutJS توسط Microsoft معرفی شد و در قالب پیشفرض پروژههای SPA قرار گرفت ، بنابراین احتمالا این سوال برای افرادی مطرح شده است که تفاوت بین KnockoutJS و AngularJS چیست ؟ می توان پاسخ داد این مقایسه ممکن نیست. Knoc ...
در پستهای قبلی با TypeScript ، AngularJs و Web Api آشنا شدید. در این پست قصد دارم از ترکیب این موارد برای پیاده سازی عملیات واکشی اطلاعات سرویس Web Api در قالب یک پروژه استفاده نمایم. برای شروع ابتدا یک پروژه Asp.Net MVC ایجاد کنید.
در قسمت مدل ابتدا یک کلاس پایه برای مدل ایجاد خواهیم کرد: public abstract class Entity
{
public Guid Id { get; set; }
}
حال کلاسی به نام Book ایجاد میکنیم: ...
پیشتر با ویژگی ها و نحوه کد نویسی این زبان آشنا شدید. از طرفی دیگر، نحوه تعریف کنترلرها در Angular نیز آموزش داده شد . در این پست قصد دارم طی یک مثال ساده با استفاده از زبان Typescript یک کنترلر Angular را ایجاد و سپس از آن در یک پروژه Asp.Net MVC استفاده نمایم. از آن جا که به صورت پیش فرض در VS.Net امکانات TypeScript نصب نشده است، برای شروع ابتدا TypeScript را از اینجا دانلود نمایید. بعد از نصب یک پروژه Asp.Net MVC ایجاد نمایی ...
در Angular مکانیزمی وجود دارد که بر اساس آن میتوان از توابع و خواص تعریف شده در یک کنترلر در سایر کنترلرها نیز استفاده کرد که در واقع از ان به عنوان ارث بری کنترلرها عنوان میشود؛ ولی نکته ای که وجود دارد این است که در جاوااسکریپ OOP پشتیبانی نمیشود پس چگونه یک آبجکت کنترلر توابع و خصوصیات کنترلر دیگر را به ارث میبرد؟ با ذکر یک مثال این مورد را بررسی خواهیم کرد.
ابتدا دو کنترلر به صورت زیر ایجاد میکنیم: var app = angular. ...
در پستهای قبلی بیان شد که برای پیاده سازی عملیات مقید سازی عناصر View به مدل در کنترلر باید scope$ را به تابع سازنده کنترلر تزریق کرد. برای مثال: var app = angular.module('myApp', []);
app.controller('myController', function ($scope) {
$scope.name = 'Masoud';
$scope.family = 'Pakdel';
})
View متناظر نیز به صورت میباشد: <div ng-app="myApp">
<div ng-controller="myController">
...
در قسمت قبل با نحوه پیاده سازی مسیریابی در AngularJs آشنا شدیم و در این پست میخواهیم نحوه تعریف و ارسال پارامترها به سیستم مسیریاب را فرا بگیریم. فرض کنید که میخواهیم در لیست سفارشات قسمتی داشته باشیم برای مشاهدهی جزئیات هر سفارش. پس در صفحه نمایش جزئیات کالا نیاز به کد محصول برای واکشی آن داریم. در Angular زمانی که داریم مسیرها را تعریف میکنیم این امکان را هم داریم که پارامترهایی را هم برای هر مسیر مشخص کنیم. برای این کار فایل app.js ...
در مطالب قبل کنترلرها و viewها مورد بحث قرار گرفتند. در این پست در نظر داریم یکی از ویژگیهای دیگر AngularJs به نام مسیر یابی (Routing) را مورد بحث قرار دهیم. یکی از ویژگیهای برنامههای تک صفحه ای عدم Reload شدن صفحات است ،بر خلاف برنامههای وب چند صفحه ای که برای نمایش صفحه ای دیگر ، باید از صفحه ای به صفحه ای دیگر منتقل شد و عمل Reload هم به طبع نیز اتفاق میافتد. در قسمت اول این سری مقالات ، مزایای برنامههای وب تک صفحه ای ...
همان طور که در پستهای قبلی
ذکر شده بود در angular تزریق وابستگی به صورت پیش فرض وجود دارد. کافیست
نام سرویس مورد نظر با نامهای پیش فرض تعبیه شده در angular یا با نام
سرویسهای ساخته شده توسط خودتان مطابقت داشته باشد. به عنوان مثال
برای تزریق سرویس scope$ در توابع سازنده کنترلر کافیست یک پارامتر به
همین نام را به عنوان آرگومان در این توابع در نظر بگیرید. همچنین برای
استفاده از سرویس http$ باید یک پارامتر دیگر به ه ...
در پست قبلی با کلیات مفاهیم دیرکتیوها آشنا شدید. در این پست قصد داریم برخی توابع کنترلرهای تعریف شده در Angular را به وسیله دیرکتیوهای تعریف شده در ماژول فراخوانی نماییم. در ادامه این موضوع را طی یک مثال بررسی خواهیم کرد.
ابتدا View مورد نظر را به صور زیر ایجاد میکنیم: <script type="text/javascript" src="~/scripts/Modules/module4.js"></script>
<div ng-app="myApp">
& ...