/ / angularjs value vs factory - angularjs

angularjs value vs factory - angularjs

Ich bin neu bei angularjs. Ich versuche herauszufinden, wann ich Value vs Factory als Service nutzen soll. Hier ist mein einfacher Code von egghead.io Tutorial:

.value("Data", function(){
return {message:"I am data from a service"};
})

Die Data.message ist an ein Eingabefeld gebunden. Wenn ich die Seite starte, ist nichts in den Eingabefeldern. Wenn ich den Wert in factory ändere, wird die Standardmeldung im Eingabefeld angezeigt.

Hier ist der Controller:

controller("FirstCtrl", ["$scope","Data",function($scope, Data) {
$scope.data = Data;
console.log("exiting first controller");
}])

und die Indexdatei:

<div ng-controller="FirstCtrl">
<input type="text" ng-model="data.message">
<h1>{{data.message}}</h1>
</div>

Warum ist die Seite leer, wenn Wert verwendet wird? Meine Annahme ist, dass der Wert nicht berechnet oder berechnet wird, wenn die App startet, während die Fabrik ist?

Wo finde ich auch eine Dokumentation zu $ ​​bereitstellen? Danke euch allen.

Antworten:

19 für die Antwort № 1

Setzen Sie den Wert auf ein Objekt und nicht auf eine Funktion:

app.value("Data", {message:"I am data from a service"});

Plunker

Siehe auch provide.value (), und das Video über $ bereitstellen (Wert, Konstante, Service, Fabrik, Dekorateur, Anbieter)


-1 für die Antwort № 2

Sie sollten den Controller als deklarieren

   app.controller("DataController", ["Data", function DataController(Data){
this.data = Data;
}]);

und dann benutze es in deiner Seite wie in meinem Code

<div ng-controller="DataController as dataController">
{{dataController.data()}}
</div>