Heim > Web-Frontend > js-Tutorial > Eine kurze Diskussion über die 4 Designmuster in Winkelanweisungen

Eine kurze Diskussion über die 4 Designmuster in Winkelanweisungen

青灯夜游
Freigeben: 2021-05-18 10:51:35
nach vorne
2565 Leute haben es durchsucht

In diesem Artikel werden Ihnen die 4 Designmuster in der angular-Direktive vorgestellt. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Eine kurze Diskussion über die 4 Designmuster in Winkelanweisungen

[Verwandte Empfehlung: „Angular-Tutorial“]

Der Funktionsumfang an Anweisungen ist sehr umfangreich, aber wir haben die Pareto-Verteilung von Anweisungen entdeckt: Eine große Anzahl von in Angular geschriebenen Anweisungen dient nur der Benutzerfreundlichkeit und Diese Anweisungen stellen einen sehr kleinen Teil des Musters dar und können grob in vier Kategorien unterteilt werden:

  • Nur-Render-Anweisungen – diese Anweisungen rendern die Daten im Bereich, ändern sie jedoch nicht.
  • Event-Handling-Wrapper – Diese Anweisungen kapseln Ereignishandler für die Interaktion mit Datenbindungen wie ngClick. Diese Anweisungen rendern keine Daten.
  • Bidirektionale Anweisungen – Diese Anweisungen rendern und ändern Daten.
  • Es integriert die Vorlagenanweisungen der oben genannten drei Funktionen.

Nur Render-Anweisungen

Diese Anweisungen folgen einem einfachen Entwurfsmuster: Sie überwachen Variablen und aktualisieren DOM-Elemente, um Änderungen in Variablen wie ngClass, ngBind widerzuspiegeln.

angular.module('app', []).
	directive('myBackgroundImage', function () {
		return function (scope, element, attrs) {
			scope.$watch(attrs.myBackgroundImage, function (newVal, oldVal) {
				element.css('background-image', 'url(' + ')');
			});
		}
	});
Nach dem Login kopieren

Event-Handling-Wrapper

Auf einer hohen Ebene können Event-Handler-Direktiven DOM-Ereignisse mit Datenbindungen binden, indem sie die $apply-Funktion wie ngClick und einen ähnlichen benutzerdefinierten Klick unten aufrufen.

angular.module('app', []).
directive('myNgClick', function () {
	return function (scope, element, attrs) {
		element.click(function () {
			scope.$eval(attrs.myNgClick);
			scope.$apply();
		});
	}
});
Nach dem Login kopieren

Bidirektionale Direktiven

Dieser Modus verwendet sowohl die Render-Only-Direktive als auch das Event-Handler-Muster, um Direktiven zu erstellen, die den Status von Variablen steuern.

angular.module('app', []).
directive('myNgClick', function () {
	return function (scope, element, attrs) {
		//监视和更新
		scope.$watch(attrs.toggleButton, function (v) {
			element.val(!v ? 'Disable' : 'Enable');
		});
 
		//事件处理程序
		element.click(function () {
			scope[attrs.toggleButton] = 
				!scope[attrs.toggleButton];
			scope.$apply();
		});
	}
});
Nach dem Login kopieren

Erweiterte Vorlagenanweisungen

Vorlagenanweisungen können leistungsstarke Anweisungen erstellen, indem sie Vorlagenoptionen festlegen. Tatsächlich entspricht die vom obigen Beispiel zurückgegebene Funktion der Linkfunktion der Vorlage.

angular.module('app', []).
directive('imageCarousel', function () {
	return {
		templateUrl: 'view/index.html',
		controller: carouselController,
		scope: {},
		link: function (scope, element, attrs) {
			scope.$parent.$watch(attrs.imageCarousel, function (v){
				scope.images = v;
			});
		}
	}
});
Nach dem Login kopieren

Es gibt viele andere Optionen für Vorlagenoptionen. Bitte lesen Sie meine anderen Blog-Beiträge. Der Schwerpunkt liegt hier auf Designmustern.

Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Einführung in die Programmierung! !

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über die 4 Designmuster in Winkelanweisungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage