‫۶ سال و ۱۰ ماه قبل، جمعه ۳ آذر ۱۳۹۶، ساعت ۱۸:۲۸
از نسخه 2.0.beta-11، ماژول  MaterialModule حذف شده است. این ماژول تمامی کامپوننتهای پیاده سازی شده را جهت استفاده وارد می‌کرد. از این نسخه به بعد بایستی کامپوننتهای مورد استفاده یکی یکی وارد شوند. به عنوان مثال اگر در برنامه خود فقط از کامپوننت دکمه و چک باکس استفاده می‌کنیم، به شکل زیر عمل میکنیم. 
import {
  MatButtonModule,
  MatCheckboxModule
} from "@angular/material";
به جهت جلوگیری از شلوغی ماژول اصلی برنامه بهتر است ماژول دیگری به شکل زیر تعریف کنیم که کامپوننتهای مورد استفاده در برنامه را مدیریت میکند و ماژول اصلی برنامه تنها از این ماژول استفاده خواهد کرد. (این روش در راهنمای استفاده از Angular Material Design به عنوان یک روش مطرح شده است.)
import {MatButtonModule, MatCheckboxModule} from '@angular/material';

@NgModule({
  imports: [MatButtonModule, MatCheckboxModule],
  exports: [MatButtonModule, MatCheckboxModule],
})
export class MyOwnCustomMaterialModule { }
در این صورت کافی است در AppModule فقط MyOwnCustomMaterialModule را در قسمت imports ذکر کنیم.
‫۷ سال و ۲ ماه قبل، پنجشنبه ۱۵ تیر ۱۳۹۶، ساعت ۰۱:۵۳
به جای قطعه کد زیر:
export class EqualValidatorDirective implements Validator {
  constructor(@Attribute("compare-to") public compareToControl: string) {}
بنده به شکل زیر عمل کرده‌ام. شاید سینتکس این روش ساده‌تر باشد.
export class EqualValidatorDirective implements Validator {
  constructor() {}
  @Input('compare-to') compareToControl: string;
  ///...
}

‫۷ سال و ۲ ماه قبل، پنجشنبه ۱۵ تیر ۱۳۹۶، ساعت ۰۱:۴۸
با تشکر از مطلب مفیدتون.
در اینجا یکسری دایرکتیو جهت اعتبار سنجی سفارشی بنده پیاده سازی کرده ام (فعلا فقط دو تا!) که نیازمند همکاری دوستان علاقمند دارد. (میتوان اعتبار سنجی‌های مربوط به فرمهای فارسی را نیز در اینجا به عنوان مرجعی مناسب برای استفاده سایرین نیز ایجاد کرد. از جمله اعتبار سنجی کدملی، شناسه ثبت شرکت، فارسی بودن اعداد در ورودی و ... که بخشی از این توابع در اینجا پیاده سازی شده است.)
همچنین در این دایرکتیوها دایرکتیوی به نام RemoteValidation پیاده سازی شده است که اعتبار سنجی نامتقارن را انجام میدهد. مشاهده کدهای این قسمت، برای آشنایی با اعتبار سنجی نامتقارن در Angular، خالی از لطف نیست.
ممنون از پیشنهادتون. علاوه بر این میتوان اعتبار سنجی برای اطلاعات فارسی رو هم پیاده سازی کرد. از جمله اعتبار سنجی کد ملی، شناسه ثبت شرکت، شماره‌های تلفن و ...
از دوستان تقاضا دارم برای داشتن یک ماژول کامل اعتبار سنجی در زمینه اطلاعات فارسی و همچنین اعتبار سنجی‌های کاربردی پیشنهاداتشون رو در این لینک  و یا در همین صفحه مطرح کنند تا در اولین فرصت پیاده سازی و تکمیل شوند.
در قسمت «بهبود اعتبارسنجی drop down» بنده قبلا در Angular 1.X برای این نوع اعتبار سنجی دایرکتیوی طراحی کرده بودم. این دایرکتیو لیست مقادیر غیر مجاز را دریافت میکرد و در صورتی که المنت یکی از این مقادیر را دریافت میکرد فرم invalid میشد. کدهای Angular 1.x به شکل زیر:
(function (app) {
    'use strict';

    function blackList() {
        return {
            require: 'ngModel',
            link: function (scope, elem, attr, ngModel) {
                var blacklist = attr.blackList.split(',');

                ngModel.$validators.blackList = function (modelValue) {
                    if (modelValue == undefined)
                        return 0;
                    var valid = blacklist.indexOf(modelValue.toString()) === -1;
                    return valid;
                };
            }
        };
    };

    app.directive("blackList", blackList);
})(angular.module('core'));
پس از برسی اینکه آیا در Angular نیز می‌توانیم دایرکتیوهایی به این صورت داشته باشیم، به این نتیجه رسیدم که بله خوشبختانه در Angular نیز میتوان اعتبار سنجی‌های سفارشی ساخت.
برای همین یک ماژول Angular برای اعتبار سنجی در Angular در صفحه گیت‌هاب خودم ایجاد کردم که فعلا تنها داری یک دایرکتیو برای اعتبار سنجی مقادیر غیر مجاز است. لطفا دوستان در صورت همکاری به این لینک مراجعه کنند.
بعد از اضافه کردن این ماژول طبق راهنما، برای قطعه کد موجود در «بهبود اعتبارسنجی drop down» از تگهای زیر می‌توان استفاده کرد.
<div [class.has-error]="blackList">
    <label>Primary Language</label>
    <select name="primaryLanguage" ngModel blackList='default' #primaryLanguage="ngModel">
          <option value="default">Select a Language...</option>
          <option *ngFor="let lang of languages">
            {{ lang }}
          </option>
      </select>
      <small [hidden]="primaryLanguage.valid">
        Not Valid
      </small>
  </div>
در این حالت بخاطر وجود دایرکتیو blackList با مقدار 'default' در صورتی که مقدار drop down با مقدار default انتخاب شده باشد فرم invalid خواهد بود و عبارت Not Valid نمایش داده خواهد شد.
پ.ن: این کد در عرض زمان خیلی کوتاهی آماده شد و منتشر شده است و احتمالا هنوز نیاز به اصلاح دارد.
‫۷ سال و ۳ ماه قبل، دوشنبه ۸ خرداد ۱۳۹۶، ساعت ۲۲:۳۸
برای اضافه کردن tab کافیه کد زیر رو در html داشته باشید.
<md-tab-group>
        <md-tab label="Tab 1">Content 1</md-tab>
        <md-tab label="Tab 2">Content 2</md-tab>
</md-tab-group>
منبع: انگیولار متریال 2
در مورد ریسپانسیو بودن صفحات نیز، بنده قصد دارم در آموزشهای جداگانه‌ای این مورد رو برسی قرار بدم. ولی فعلا می‌توانید مستندات مربوط به flex-layout رو مطالعه کنید. البته لازم به ذکر است نسخه نهایی این ماژول فعلا منتشر نشده است و همچنان در حال توسعه می‌باشد.  
‫۷ سال و ۴ ماه قبل، دوشنبه ۸ خرداد ۱۳۹۶، ساعت ۱۳:۴۷
متاسفانه تیم انگیولار متریال 2 تا الان برای این مورد پیاده سازی خاصی نداشته اند. حتی در انگیولار متریال که از آخرین تاریخ انتشار نسخه پایدار آن زمان زیادی می‌گذرد، هنوز پیاده سازی صورت نگرفته است و احتمالا باید از کامپوننت‌های دیگر برای این کار استفاده کرد.
بنده به شخصه در آنگیولار متریال یک از این ماژول استفاده کرده‌ام و بسیار حیرت آور است.
اما در انگیولار متریال دو فعلا تنها موردی که پیدا کرده ام این کار است که هنوز در برنامه کاربردی پیچیده از آن استفاده نکرده‌ام.
‫۷ سال و ۴ ماه قبل، دوشنبه ۸ خرداد ۱۳۹۶، ساعت ۰۴:۲۵
این موردی که شما ذکر کردید نحوه استفاده از کامپوننت باتن در انگیولار متریال یک می‌باشد.
همانطور که در متن نیز اشاره شد، انگیولار متریال 2 کامپوننت‌های با کیفیت بالا و کدهای تمیز و مستندات کافی در اختیار توسعه دهندگان قرار می‌دهد. این مستندات را در اینجا می‌توانید مشاهده کنید. بنده نیز از همین مستندات استفاده کرده‌ام.