آموزش هوش مصنوعی از صفر ، بدون پیش‌نیاز آموزش هوش مصنوعی ، از صفر بدون پیش‌نیاز!
🎯 شروع یادگیری

آموزش Knockout

Knockout یک کتابخانه ی JavaScript است که به شما امکان می دهد صفحات وبی بنویسید که از لحاظ ظاهر و ویرایش اطلاعات واکنشگرا (responsive) و غنی هستند و دارای data model زیرساختی کارامد می باشند.


معرفی Knockout

آموزش Knockout
آموزش Knockout

Knockout یک کتابخانه ی JavaScript است که به شما امکان می دهد صفحات وبی بنویسید که از لحاظ ظاهر و ویرایش اطلاعات واکنشگرا (responsive) و غنی هستند و دارای data model زیرساختی کارامد می باشند. هر زمان که در UIاپلیکیشن های تحت وب خود بخش هایی دارید که به صورت داینامیک بروز آوری می شوند (برای مثال بر اساس عملیات کاربر یا به هنگام تغییر در منبع داده ی خارجی)، می توانید به کمک کتابخانه ی KO آن را به روش آسان تر و با قابلیت نگهداشت بهتر (maintainable) پیاده سازی کنید. در نهایت می توان گفت که knockout.js یک کتابخانه برای زبان اسکریپت نویسی سمت کلاینت JavaScript است که الگوی توسعه ی MVVM و تکنیک data binding را در برنامه های تحت وب پیاده سازی می کند.

2342 بازدید
ادامه
آموزش نصب Knockout
آموزش نصب Knockout

می توانید با کلیک بر روی لینک زیر آخرین production build (نسخه ی نهایی و عیب زدایی شده) از knockout.js را دریافت کنید:

2091 بازدید
ادامه
آموزش مفهوم Observable ها در Knockout.js
آموزش مفهوم Observable ها در Knockout.js

Model-View-View Model یا به اختصار MVVM یک الگوی توسعه برای ساخت رابط کاربری (UI) می باشد. این الگو شرح می دهد چگونه می توانید یک UI پیچیده را با تقسیم آن به سه بخش، قابل مدیریت و ساده نگه دارید

2471 بازدید
ادامه
آرایه در Knockout
آرایه در Knockout

اگر می خواهید از تغییرات در یک شی بلافاصله مطلع شده و به آن ها واکنش نشان دهید، بایستی از observable ها استفاده کنید. اگر می خواهید تغییراتی که در collection یا مجموعه ای از اشیا رخ می دهد را رصد کرده و به آن ها واکنش نشان دهید، آنگاه می بایست از observableArray (آرایه ای از observable ها) استفاده کنید. بنابراین اگر می خواهید چند مقدار را نمایش داده یا ویرایش کنید و به تبع آن لازم دارید بخش های تکراری UI، همینکه آیتم ها اضافه/حذف می شوند، پدیدار و ناپدید شوند، می توانید از observable array های استفاده کنید.

2200 بازدید
ادامه
computed observables در Knockou
computed observables در Knockou

اگر یک observable برای خاصیت firstName و یکی برای lastName داشته باشید و بخواهید fullName (جمع مقدار دو property) را نمایش دهید، چه کار باید انجام دهید؟ برای این منظور کافی است از computed observable ها استفاده نمایید –computed observable ها یکسری توابع وابسته به یک یا چند observable دیگر هستند و هر زمان که یکی از این وابستگی ها (observable ها) تغییر کند، متناسب با آن تغییر به صورت خودکار بروز رسانی می شوند. برای مثال، با در نظر گرفتن کلاس view model زیر.

1974 بازدید
ادامه
observable های محاسباتی که مقدارشان قابل ویرایش است
observable های محاسباتی که مقدارشان قابل ویرایش است

این مبحث متناسب با نیاز کاربران خبره ی کتابخانه ی KO نوشته شده است و موارد کاربرد آن محدود به شرایط خاص و سناریوهای پیچیده می باشد –بنابراین کاربران تازه وارد می توانند نخوانده از آن رد شوند.

2072 بازدید
ادامه
تنظیم مقدار data bind
تنظیم مقدار data bind

این binding المان DOM مربوطه (bind یا متصل شده به data model) را با توجه به مقداری که به آن (binding) ارسال می شود، به نمایش گذاشته یا از نظر پنهان می کند.

1895 بازدید
ادامه
تنظیم data bind بر روی css
تنظیم data bind بر روی css

"css" یک یا چند کلاس (نام گذاری شده ی) CSS را به المان DOM مربوطه (متصل شده به data model) اضافه کرده یا از آن حذف می کند. اگر بخواهید مقداری را در صورت منفی شدن آن با رنگ قرمز هایلایت کنید، این binding می تواند به کمک شما بیاید.

2463 بازدید
ادامه
تنظیم مقدار data bind بر روی Style
تنظیم مقدار data bind بر روی Style

این binding مقدار یک یا چند style را به المان DOM مربوطه (که به صورت دو طرفه به data model متصل شده) اضافه کرده یا از آن حذف می کند. از "style" می توانید برای هایلایت کردن مقداری با رنگ قرمز، در صورت منفی شدن آن مقدار استفاده کنید و یا پهنای یک خط را طوری تنظیم کنید که در صورت تغییر در مقدار عددی متناسب با آن تغییر اندازه دهد. (اگر نمی خواهید یک مقدار style را به صورت صریح اعمال کنید و ترجیح می دهید یک کلاس CSS تخصیص دهید، بهتر است به مبحث پیشین (css binding) مراجعه نمایید).

1792 بازدید
ادامه
تنظیم data bind بر روی attr
تنظیم data bind بر روی attr

این binding یک روش کلی و سراسری (generic) برای مقداردهی attribute المان های DOM مربوطه (متصل شده به data model) فراهم می آورد. به طور مثال اگر بخواهید مقدار خصوصیت (attribute) title یک المان، خصوصیت src از تگ img یا href یک لینک را بر اساس مقادیر موجود در view model تنظیم کنید، به طوری که مقدار attribute با تغییر در مقدار model property مربوطه (برای تطبیق) به صورت خودکار بروز رسانی شود، آنگاه خواهید دید که binding مزبور می تواند چه کمک شایانی به شما بکند.

2019 بازدید
ادامه

آموزش KnockoutJS-آموزش Binding در KnockoutJS

آموزش KnockoutJS –آموزش Binding آشکار در KnockoutJS
آموزش KnockoutJS –آموزش Binding آشکار در KnockoutJS

Binding آشکار باعث می شود که المان DOM مربوطه بر اساس مقدار عبوری به Binding مخفی یا آشکار شود. آموزش KnockoutJS –آموزش Binding آشکار در KnockoutJS

1394 بازدید
ادامه
آموزش KnockoutJS-آموزش Binding متن در  KnockoutJS
آموزش KnockoutJS-آموزش Binding متن در KnockoutJS

آموزش KnockoutJS-آموزش Binding متن در KnockoutJSاین binding باعث می شود که المان DOM مربوطه مقدار متن پارامتر شما را نمایش دهد.این کار معمولا با المان هایی مانند < span > یا < em > که از قدیم وظیفه ی نمایش متن را بر عهده داشته اند، مفیدتر است. اما از نظر فنی می توانید از این binding در کنار هر المانی استفاده کنید.

1462 بازدید
ادامه
آموزش KnockoutJS-آموزش HTML binding در KnockoutJS
آموزش KnockoutJS-آموزش HTML binding در KnockoutJS

این binding باعث می شود که المان مربوطه ی DOM ، HTML ای را نمایش دهد که توسط پارامتر شما مشخص شده است.استفاده از این binding معمولا زمانی مفیدتر است که مقادیر موجود در view model تان رشته هایی از HTML markup باشند که قصد دارید آن ها نمایش دهید.آموزش KnockoutJS-آموزش HTML binding در KnockoutJS

1312 بازدید
ادامه
آموزش KnockoutJS-آموزش CSS binding در KnockoutJS
آموزش KnockoutJS-آموزش CSS binding در KnockoutJS

این binding کلاس های CSS را در المان DOM مربوطه حذف یا اضافه می کند. برای مثال فرض کنید که عدد منفی ای داشته باشید و بخواهید آن را به رنگ قرمز هایلایت کنید، در اینصورت این binding برای تان مفید است.آموزش KnockoutJS-آموزش CSS binding در KnockoutJS

1462 بازدید
ادامه
آموزش KnockoutJS-آموزش  style binding در KnockoutJS
آموزش KnockoutJS-آموزش style binding در KnockoutJS

کار این binding حذف یا اضافه کردن مقادیر استایل (style values) به المان مربوطه ی DOM است. فرض کنید که یک مقدار عددی دارید که می خواهید بعد از اینکه کمتر از صفر شد آن را قرمز کنید، یا اینکه بخواهید عرض کادری را تغییر دهید که قرار است عرض آن همراه با تغییر مقدار عددی داخل آن، تغییر کند. در این صورت این binding برای شما مفید است.آموزش KnockoutJS-آموزش style bindingدر KnockoutJS

1517 بازدید
ادامه
آموزش KnockoutJS-آموزش attr bindin در KnockoutJS
آموزش KnockoutJS-آموزش attr bindin در KnockoutJS

این binding روشی کلی برای تنظیم مقدار تمام ویژگی(attribute ) المان مربوطه ی DOM را ارائه می کند. title یک المان ، src مربوط به تگ img ، یا href لینکی را بر اساس مقادیر موجود در view model تان تنظیم کنید، به گونه ای که مقدار این ویژگی هر زمان که مشخصه ی مدل متناظر تغییر کند، به صورت خودکار آپدیت شود، در این صورت این binding برایتان مفید است.آموزش KnockoutJS-آموزش attr bindin در KnockoutJS

1541 بازدید
ادامه

آموزش Overflow Control در KnockoutJS

آموزش KnockoutJS-آموزش  foreach binding در KnockoutJS
آموزش KnockoutJS-آموزش foreach binding در KnockoutJS

این binding به ازای هر یک از ورودی های موجود در یک آرایه، بخشی از markup را کپی می کند و هر یک از بخش های کپی شده ی این markup را به آیتم آرایه ای متناظر مقید می کند. این binding در نمایش دادن لیست ها یا جدول ها کاربرد ویژه ای دارد. آموزش KnockoutJS-آموزش foreach binding در KnockoutJS

1597 بازدید
ادامه
آموزش KnockoutJS-آموزش If binding در KnockoutJS
آموزش KnockoutJS-آموزش If binding در KnockoutJS

این Binding باعث می شود که تنها در صورتی که مقدار عبارتی مشخص برابر با true شود (یا مقدار شبه true ای مانند شیء تهی یا رشته های غیر خالی) بخشی از markup ، در سند شما ظاهر شود ( و ویژگی های data-bind آن اعمال شود).

1406 بازدید
ادامه
آموزش KnockoutJS-آموزش Ifnot binding در KnockoutJS
آموزش KnockoutJS-آموزش Ifnot binding در KnockoutJS

این binding درست مانند if binding عمل می کند، با این تفاوت نتیجه هر عبارتی که به آن تحویل دهید را برعکس می کند. برای اطلاعات بیشتر به if binding مراجعه کنید. آموزش KnockoutJS-آموزش Ifnot binding در KnockoutJS

1394 بازدید
ادامه
آموزش Knockout-آموزش With binding در Knockout
آموزش Knockout-آموزش With binding در Knockout

کار این binding ایجاد کردن یک binding text جدید است، به گونه ای که المان های زیرمجموعه در درون متن یک شیء مشخص مقید باشند. می توانید در کنار دیگر binding های کنترل جریان مانند if و foreach ، از binding های with به صورت لانه ای استفاده کنید.آموزش Knockout-آموزش With binding در Knockout

1456 بازدید
ادامه
آموزش KnockoutJS-آموزش component binding در KnockoutJS
آموزش KnockoutJS-آموزش component binding در KnockoutJS

component مشخصی را داخل یک المان ئارد می کند و به صورت اختیاری پارامترهایی را به آن تحویل می دهد.آموزش KnockoutJS-آموزش component binding در KnockoutJS

1480 بازدید
ادامه

آموزش KnockoutJS-آموزش Form Field در KnockoutJS

آموزش KnockoutJS-آموزش click binding در KnockoutJS
آموزش KnockoutJS-آموزش click binding در KnockoutJS

کار این binding اضافه کردن یک event handler است به گونه ای که بعد از اینکه المان DOM مربوطه کلیک می شود، تابع جاوا اسکریپت احضار می شود. کاربرد این binding بیشتر در المان هایی مانند button, input و a ظهور پیدا می کند. اما در واقع در کنار همه ی المان های قابل دیدن DOM کار می کند.آموزش KnockoutJS-آموزش click binding در KnockoutJS

1491 بازدید
ادامه
آموزش KnockoutJS-آموزش  event binding در KnockoutJS
آموزش KnockoutJS-آموزش event binding در KnockoutJS

این binding این امکان را برای شما فراهم می کند تا برای یکی از رویدادهای مشخص، event handler ای را اضافه کنید. به صورتی که زمانی که این رویداد در المان مربوطه ی DOM فعال شود، تابع جاوا اسکریپت انتخاب شده ی شما احضار خواهد شد. از event bindingمی توان برای مقید شدن به تمامی event ها مانند keypress, mouseover یا mouseout استفاده کرد.آموزش KnockoutJS-آموزش event binding در KnockoutJS

1665 بازدید
ادامه
آموزش KnockoutJS-آموزش submit binding در KnockoutJS
آموزش KnockoutJS-آموزش submit binding در KnockoutJS

کار این binding اضافه کردن یک event handler است به گونه ای که پس از submit شدن المان مربوطه ی DOM تابع انتخاب شده ی جاوا اسکریپت تان احضار خواهد شد. معمولا از این binding در المان های form استفاده می شود.آموزش KnockoutJS-آموزش submit binding در KnockoutJS

1464 بازدید
ادامه
آموزش KnockoutJS-آموزش enable binding در  KnockoutJS
آموزش KnockoutJS-آموزش enable binding در KnockoutJS

enable binding باعث می شود که المان مربوطه ی DOM تنها وقتی که مقدار پارامتر برابر با true باشد، enable شود. این binding در form element هایی مانند input, select و textarea مفید خواهد بود.آموزش KnockoutJS-آموزش enable binding در KnockoutJS

1507 بازدید
ادامه
آموزش KnockoutJS-آموزش disable binding در KnockoutJS
آموزش KnockoutJS-آموزش disable bindingدر KnockoutJS

disable binding باعث می شود که المان مربوطه ی DOM تنها وقتی که مقدار پارامتر برابر با true باشد، disable شود. این binding در form element هایی مانند input, select و textarea مفید است. آموزش KnockoutJS-آموزش disable binding در KnockoutJS

1513 بازدید
ادامه
آموزش KnockoutJS-آموزش value binding در KnockoutJS
آموزش KnockoutJS-آموزش value binding در KnockoutJS

value binding مقدار المان مربوطه ی DOM را در view model تان به یک مشخصه مرتبط می کند. این binding معمولا در form element هایی مانند < input >, < select > و < textarea > مفید است.آموزش KnockoutJS-آموزش value binding در KnockoutJS

1629 بازدید
ادامه
آموزش KnockoutJS-آموزش  textInput bindingدر KnockoutJS
آموزش KnockoutJS-آموزش textInput bindingدر KnockoutJS

این binding یک text box input یا یک text area textarea را به یک مشخصه ی view model متصل می کند. و در این صورت بین مشخصه ی view model و مقدار المان امکان آپدیت های دو طرفه را فراهم می کند. برخلاف value binding ، textInput برای انواع ورودی های کاربر امکان آپدیت های فوری را از DOM فراهم می کند. آموزش KnockoutJS-آموزش textInput bindingدر KnockoutJS

1466 بازدید
ادامه
آموزش KnockoutJS-آموزش hasFocus binding در KnockoutJS
آموزش KnockoutJS-آموزش hasFocus binding در KnockoutJS

hasFocus binding حالت تمرکز المانی از DOM را به مشخصه ی view model متصل می کند. این binding یک binding دو طرفه محسوب می شود.آموزش KnockoutJS-آموزش hasFocus binding در KnockoutJS

1568 بازدید
ادامه
آموزش KnockoutJS-آموزش checked binding در KnockoutJS
آموزش KnockoutJS-آموزش checked binding در KnockoutJS

checked binding یک checkable form control (همان checkbox ) (<input type='checkbox'>) یا یک radio button (<input type='radio'>) را به یک مشخصه ی موجود در view model شما متصل می کند.آموزش KnockoutJS-آموزش checked binding در KnockoutJS

1409 بازدید
ادامه
آموزش KnockoutJS-آموزش  options binding در KnockoutJS
آموزش KnockoutJS-آموزش options binding در KnockoutJS

options binding کنترل می کند که چه option هایی باید در یک drop-down لیست (یعنی یک المان <select> ) یا لیست چند انتخابی (multi-select list) (مثلا <select size='6'>) نمایش داده شود. این binding را تنها می توان کنار المان های <select> استفاده کرد.آموزش KnockoutJS-آموزش options binding در KnockoutJS

1516 بازدید
ادامه
آموزش KnockoutJS-آموزش selectedOptions binding در KnockoutJS
آموزش KnockoutJS-آموزش selectedOptions binding در KnockoutJS

selectedOptions binding کنترل می کند که کدام المان ها در یک لیست چند انتخابی در حال حاضر انتخاب شده اند. این binding قرار است که در کنار المان <select> و options binding استفاده شود.آموزش KnockoutJS-آموزش selectedOptions binding در KnockoutJS

1300 بازدید
ادامه

آموزش Template Binding در KnockoutJS

آموزش KnockoutJS-آموزش  template bindingدر KnockoutJS
آموزش KnockoutJS-آموزش template bindingدر KnockoutJS

template binding المان های مربوط به DOM را با نتایج حاصل از رندر کردن یک قالب را پر (populate) می کند. قالب ها روشی ساده برای ساخت ساختارهای پیچیده ی رابط کاربری هستند (این کار را می توان با حلقه های تو در تو یا حلقه های تکرار انجام داد). قالب ها به عنوان تابعی از view model data شما عمل می کنند.آموزش KnockoutJS-آموزش template bindingدر KnockoutJS

1254 بازدید
ادامه

آموزش Binding Context در Knockout

سینتکس data-bind در KnockOut
ساختار سینتکس data-bind در KnockOut

عموما مقید شدن به مشخصات داده های ساده یا استفاده از تنها یک binding کار ساده و واضحی است. برای اینکه بتوان binding های پیچیده تری را انجام داد و رفتار همچنین سیستم سینتکس data-binding در KnockOut را بهتر درک کرد، می توان از سیستم مقید سازی اعلانی (declarative binding system) ناک اوت کمک گرفت.

1693 بازدید
ادامه
محتوا binding (Binding context) در Knockout
محتوا و استفاده از binding (Binding context) در Knockout

Binding context شیئی است که داده هایی را نگهداری می کند که می توان از binding ها به آن ها اشاره کرد. طی زمان به کار گرفتن binding ها ناک اوت به صورت خودکار سلسله مراتبی از زمینه های binding را ایجاد و مدیریت می کند. سطح ریشه ی این سلسله مراتب به پارامتر viewModel ای اشاره دارد که شما در اختیار ko.applyBindings(viewModel) قرار داده اید.

1765 بازدید
ادامه

ایجاد Binding شخصی سازی در Knockout

ایجاد binding های اختصاصی در Knockout
نحوه ایجاد binding های اختصاصی در Knockout

کار شما محدود به binding های پیش فرض مانند click ، value و غیره نمی شود. بلکه می توانید binding های مخصوص به خودتان را ایجاد کنید. با کمک این کار می توانید چگونگی تعامل observable ها با المان های DOM را کنترل کنید و انعطاف پذیری برنامه را در encapsulate کردن رفتارهای پیچیده افزایش دهید.ایجاد binding های اختصاصی در Knockout

1468 بازدید
ادامه
ایجاد کنترل کردن binding های فرزند (descendant bindings) در Knockout
ایجاد کنترل کردن descendant bindings در Knockout

یک تکنیک پیشرفته بوده و معمولا تنها در مواقعی استفاده می شود که بخواهیم کتابخانه های binding های با قابلیت استفاده ی مجدد را ایجاد کنیم. در حالت طبیعی در ساختن نرم افزارها به کمک Knockout نیازی به این تکنیک نیست.

1445 بازدید
ادامه

ساخت کامپوننت (Component) در KnockOut

مقدمه ای بر کامپوننت ها و المان های اختصاصی
مقدمه ای برای آشنایی با کامپوننت ها و المان های اختصاصی

کامپوننت ها روشی قدرتمند و آسان برای سازماندهی کدهای رابط کاربری تان در چانک هایی با قابلیت استفاده مجدد و کامل هستند.

1623 بازدید
ادامه
ثبت کامپوننت
نحوه ثبت Component های KnockOut

برای آنکه KnockOut بتواند کامپوننت های شما را نمونه سازی و بارگیری کند، شما باید با استفاده از ko.components.register و پیکربندی ای که در اینجا ارائه شده است، آن ها را ثبت کنید.

1842 بازدید
ادامه
Component Binding
آموزش "component" binding

"component" binding

1372 بازدید
ادامه