2014-07-25 10 views
6

To jest mój kod kontrolera:Jak ustawić dynamiczną nazwę zmiennej w angularjs kontrolera

var selectableFields = ["customerName", "customerAddress"]; 

angular.forEach(selectableFields, function(field, key) { 
var value = $.jStorage.get(field); //using jStore to get the values 
$scope.field=value; 

}); 

Celem jest, aby móc uzyskać dostęp {{CustomerName}} i {{}} AdresKlienta w widoku. Czy ktoś może mi powiedzieć, jaki jest prawidłowy sposób robienia tego?

Odpowiedz

22

Zamiast tego należy użyć $scope[field] = value;.

Po utworzeniu $scope.field tworzony jest nowy atrybut o nazwie field.

+4

+1, Poleciłbym również OP, aby nie dodawał "zmiennych dynamicznych" bezpośrednio do obiektu zakresu. Zamiast tego, jeśli jest to formularz (na przykład), niech to będzie '$ scope.form [pole] = wartość;'. – jnthnjns

+0

Wielkie dzięki, tego właśnie szukałem. :) – user727728

+0

Mam do czynienia z tym samym problemem, ale nie w stanie rozwiązać, możesz mi pomóc? – Sagar

Powiązane problemy