Lesen Sie die zurückgegebenen JSON-Daten von MVC-controller in Eckigen controller
Ich bin sehr neu in AngularJS, bitte akzeptieren Sie meine Entschuldigung, wenn diese Frage ist leicht. Ich hoffe auch, dass der Titel der Frage ist verständlich?
Ich bin mit AngularJS mit ASP.Net MVC-Anwendung bereit, die Daten aus SQL server-Tabelle und dann die Daten anzeigen, die auf der Ansicht. Sieht alles gut aus, aber wenn ich versuche, einen Schritt nach vorn für fortgeschrittene Aufgaben, ich finde heraus, dass ich bin nicht in der Lage zu Lesen, wird das Objekt aus Winkel-Modul.
Zum Beispiel, ich möchte zum Lesen der Kontaktdaten eines Benutzers jeder Benutzer hat unterschiedliche Anzahl von Kontakten. So, die ng-repear limitTo
sollten nicht die gleichen sein. Zu tun, dass wollte ich Lesen Sie einige Daten und dann setzen Sie eine variable, um die Anzahl der Elemente, die ich gefunden habe auf die Datenbank, und verwenden Sie dann die variable in mein ng-repear limitTo
Dies ist ein Teil meiner Sicht:
<table>
<tr ng-repeat="contact in users | limitTo:loopVar">
<td>
<div ng-show="!contactsElements" class="item_list">{{contact.contacts + " (" + contact.contactDesc + ")"}}</div>
</td>
</tr>
Wo loopView
ist die variable, die ich verwenden möchten
Dies ist die Eckige module/controller:
var myApp = angular.module('myApp', []);
myApp.controller('mainController', function ($scope, $http) {
$http.get('/Home/GetUser')
.success(function (result) {
$scope.users = result;
})
.error(function (data) {
console.log(data);
});
\\HOW I CAN SET THE loopVar HERE SO I CAN USE IT IN MY VIEW??
}
Den MVC-controller unter:
public JsonResult GetUser()
{
User userData = (User)Session["user"];
var db = new testDBEntities();
return this.Json((from userObj in db.Users
join uc in db.UserContacts
on userObj.Id equals uc.usrID
join us in db.Users
on userObj.usrSupervisor equals us.Id
where userObj.Id.Equals(userData.Id)
select new
{
Id = userObj.Id,
usrNme = userObj.usrNme,
fName = userObj.usrFirstName,
lName = userObj.usrLastName,
ssno = userObj.usrSSN,
contacts = uc.usrContact,
contactDesc = uc.usrContactDescription,
})
, JsonRequestBehavior.AllowGet
);
}
Ich hoffe, Sie verstehen meinen Punkt... Im Allgemeinen, wie ich Lesen kann, die zurückgegeben JSON
Objekt in meinem Winkel-controller, bevor Sie es in meinem Blick? Wie Sie sehen können, bin ich in der Lage, Daten zu Lesen, in meiner Sicht mit ng-repeat
Richtlinie, aber ich weiß nicht, wie bereit die einzelnen Bereich in meinem Angular controller.
Danke
- wo ist
loopVar
definiert? es scheint nicht eine Eigenschaft desusers
array vom server kommt.... - Ich habe es nicht noch, ich will wissen, wie ich Lesen kann, einige Datenbank-Objekt aus der zurückgegebenen JSON in das Eckige-controller und weisen Sie dann diesen Wert in $Umfang.looVar
- weisen Sie im inneren der
.success
Rückruf, auf die gleiche Weise zugewiesen$scope.users
. Wenn Sie versuchen, ordnen Sie es außerhalb der.success
, ist der Wert nicht vorhanden ist, weil die Antwort wurde noch nicht vom server zurückgegeben noch (async). möchten Sie vielleicht zu Lesen, auf async wenn Sie unsicher sind. es ist auch erwähnenswert,.success
ist veraltet und es wird empfohlen, dass Sie verwenden.then
statt. - Ich danke Ihnen sehr für Ihren Kommentar. Okay, wenn Sie sehen, dass mein code, ich bin die Zuordnung des gesamten Objekts zu
$scope.users=result
im.success
. Und es ist richtig... Was ist, wenn ich Lesen möchte einen bestimmten Frieden von Daten? Wie der Benutzername$scope.username=result.usrNme
... das ist Das was ich Suche zu tun, nicht mit Glück so weit. - wenn
result
ist ein einzelnes Objekt, dann sollte das korrekt funktionieren, vorausgesetzt, dass es innerhalb der.success
....
Du musst angemeldet sein, um einen Kommentar abzugeben.
Daten-Objekt zurückgegeben wird, formatiert die Art und Weise wie Sie ihn angegeben haben in Ihrem Controller JsonResult.
Zur Verfügung, um jeden in dem array übergeben von Ihrem Controller GetUser Funktion
Wenn Sie wollen einfach nur senden Sie einen Wert aus der Steuerung in ein JsonResult Sie können es tun, wie dieses
Lassen Sie uns sagen, Sie haben eine Methode call GetLoopVar() im controller:
Und in Ihrem client
Um die beiden zu verbinden und das Ziel erreicht wird, hier würde ich zuerst sicherstellen, dass der scope-Wert festgelegt ist, die im filter verwendet wird.
Nach der loopVar gesetzt ist, dann kommen die Anwender.
Eine Möglichkeit, dies zu tun ist durch den Aufruf der Funktion getUsers, nachdem Sie den loopVar Wert wie diese