Wie kann ich definieren, meinen controller mit TypeScript?
Wie formuliere ich meine controller mit Typoskript. Wie jetzt es ist in angular js, aber ich will, dies zu ändern für Typ-Skript.Damit die Daten schnell abgerufen werden kann.
function CustomerCtrl($scope, $http, $templateCache){
$scope.search = function(search)
{
debugger;
var Search = {
AccountId: search.AccountId,
checkActiveOnly: search.checkActiveOnly,
checkParentsOnly: search.checkParentsOnly,
listCustomerType: search.listCustomerType
};
$scope.customer = [];
$scope.ticket = [];
$scope.services = [];
$http.put('<%=ResolveUrl("API/Search/PutDoSearch")%>', Search).
success(function(data, status, headers, config) {
debugger;
$scope.cust_File = data[0].customers;
$scope.ticket_file = data[0].tickets;
$scope.service_file = data[0].services;
}).
error(function(data, status)
{
console.log("Request Failed");
});
}
}
Sind Sie offen für die Verwendung ControllerAs syntax? was nun die vorgeschlagene Umsetzung
Eigentlich bin ich ein Winkel-app, die mit einer aspx-Seite, von der aus ich m nehmen ein text-Feld-Daten-und als bezaubernde, dass id in meine angulart js-code und als das senden von Parametern, um meine web-api und als erneut, wenn die Daten zurückgegeben werden, die durch API-es wird erhalten durch meine Winkel-Skript und als es wird gezeigt, dass es an meinem Netz.
Alle unsere Basis sind gehören zu uns!
Alle Ihre Basis sind gehören zu uns! Kann ich kommen, um die Außenseite jetzt?
Eigentlich bin ich ein Winkel-app, die mit einer aspx-Seite, von der aus ich m nehmen ein text-Feld-Daten-und als bezaubernde, dass id in meine angulart js-code und als das senden von Parametern, um meine web-api und als erneut, wenn die Daten zurückgegeben werden, die durch API-es wird erhalten durch meine Winkel-Skript und als es wird gezeigt, dass es an meinem Netz.
Alle unsere Basis sind gehören zu uns!
Alle Ihre Basis sind gehören zu uns! Kann ich kommen, um die Außenseite jetzt?
InformationsquelleAutor Shian JA | 2015-05-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beschloss ich, fügen Sie eine andere Antwort mit Beispiel. Es ist eine sehr vereinfachte version, aber sollte zeigen, alle grundlegenden, wie uns
TypeScript
undangularJS
.Es ist eine funktionierende plunker
Dies würde unsere
data.json
spielen die Rolle eines Servers.Das wäre unser Start-Modul
MainApp.js
:Damit wir später verwenden können Modul
CustomerSearch
. Dies würde unsere index.htmlNun, wir würden sehen, die Erklärung von 1) - Richtlinie, 2) Umfang, 3) controller. Dies alles könnte in einer Datei (check it hier). Wir beobachten alle drei Teile der Datei
CustomerSearch.dirc.js
(es ist CustomerSearch.dirc.ts .. aber für plunker ich eingehalten)1) Verweis auf Modul 'CustomerSearch", erklärte vor und erklären
directive
Wurde die Richtlinie erklärt in Schriftlicher und sofort injiziert, in der unser Modul
Nun deklarieren wir eine Umfang verwendet werden, als ein stark typisiertes Objekt im Controller:
Und jetzt können wir erklären, einfache Steuerung
Beachten Sie, dass sämtliche in Aktion hier
ja, ich m versucht nun, die Umsetzung in der gleichen Weise...Danke!!!!
Warum sind Sie Schichtung von eigenen Modulen auf der Oberseite des Winkel -? Ich bin nicht überzeugt, dass diese zusätzliche Schicht von Komplexität und zusätzliche global-state erforderlich ist. Was für einen Vorteil haben Sie eigentlich von dieser?
Scheint, wie verlesen das Modul keyword. Nehmen Sie es als ein namespace und es sollte dir die Antwort geben. Es gibt KEINE speziellen Modul überhaupt. Hoffe, das hilft ein bisschen..
ng-Module stellen bereits Verwendung von Namensräumen: safaribooksonline.com/blog/2014/03/27/...
InformationsquelleAutor Radim Köhler
Gibt es 2 verschiedene Möglichkeiten, um diese Situation zu bewältigen:
Wenn Sie wechseln von $scope zu controllerAs Ihre Ansicht ändern würde aus:
:
wo
custom
ist eine Darstellung der Steuerung, so sind Sie explizit sagen, was Sie sind verbindlich in Ihrem markup.Hinweis
$inject ist ein Weg, um den Winkel mit Informationen über das, was die Abhängigkeiten zu injizieren, in den controller zur Laufzeit, selbst wenn der code minified (strings nicht bekommen, minified)
Ich aktualisiert meine Antwort auf beide Beispiele und auch ein Beispiel, wie Ihre Ansicht/markup ändern müssen, reflektieren Sie Ihre änderung in der Steuerung
Ich nahm das Stück
$inject
und fügte hinzu, dass in meiner Antwortwenn Sie bei der Definition der controller in der route und nicht inline (über
ng-controller
), dann ja. In der route-definition, in dem Sie angebencontroller: 'CustomCtrl'
Sie hinzufügen können:controllerAs: 'custom'
in diesem Fall keine, nur die
ng-controller
Attribut zu habenas custom
InformationsquelleAutor Brocco
Es wäre noch mehr zu verbessern (z.B. nicht $Umfang.suchen, aber Strg.Suche), aber einer der Wege sein könnte:
Zunächst erstellen wir unser Modul MyModule und definieren Sie ein neues $scope - die
ICustomer Scope
Nächste ist die Steuerung, die würde injiziert Winkel-Modul später. es nutzt die
ICustomerScope
oben definiertNun machen wir weiter - wir Holen Verweis auf Modul, und registrieren controller:
CustomerCtrl
.Nun unseren controller verwendet werden kann, wird das gleiche tun wie original. Aber genutzt werden könnte, und deklarieren Sie öffentliche Aktionen statt von
$scope.methods()
$inject
an die Klasse geben für die VerkleinerungKohler erste Fehler " uncaught error: amgular ist nicht definiert
Warum sind Sie Schichtung von eigenen Modulen auf der Oberseite des Winkel -? Ich bin nicht überzeugt, dass diese zusätzliche Schicht von Komplexität und zusätzliche global-state erforderlich ist. Was für einen Vorteil haben Sie eigentlich von dieser?
Scheint, wie verlesen das Modul keyword. Nehmen Sie es als ein namespace und es sollte dir die Antwort geben. Es gibt KEINE speziellen Modul überhaupt. Hoffe, das hilft ein bisschen...
InformationsquelleAutor Radim Köhler
Jetzt werden wir sehen, ein basic-Beispiel, in dem wir so erstellen Sie ein Modul und ein controller mit einer Methode. Um mit zu beginnen Typoskript, benötigen wir die folgenden Dateien müssen Hinzugefügt werden, in unserem Projekt. Berücksichtigen nicht die Referenz Pfad , nur den Dateinamen aus der Liste.
Installieren Sie das Typoskript aus dem folgenden link, wenn nicht vorhanden, in visual studio
https://www.microsoft.com/en-us/download/details.aspx?id=48593
Einmal beenden Sie die herunterladen die über die Eingabe-Datei , fügen Sie die in Ihrem Projekt.
Erstellen Sie nun eine typescript-Datei, app.ts und fügen Sie die obige Referenz in den ersten zwei Zeile, um die intellisense beim codieren.
Siehe den link unten für weitere detail-Informationen
https://angular2js.blogspot.in/2016/06/create-sample-application-in-angular-js.html
InformationsquelleAutor Rajesh G