J'essaie de comprendre comment eval() fonctionne dans AngularJS, mais je n'arrive pas à comprendre.
Je donne les résultats suivants:
$scope.salaryRate, $scope.priceRate = {
number: undefined,
type: undefined,
from: undefined,
to: undefined,
rate: undefined
}
$scope.addRate = function (variable) {
eval('$scope.' + variable).push({
'number': eval('$scope.' + variable + 'Rate').number,
'type': eval('$scope.' + variable + 'Rate').type,
'days': {
'days': eval('$scope.' + variable + 'SelectedDay'),
'daynames': displayDayNames($scope.dayNames, eval('$scope.' + variable + 'SelectedDay'))},
'from': eval('$scope.' + variable + 'Rate').from,
'to': eval('$scope.' + variable + 'Rate').to,
'rate': eval('$scope.' + variable + 'Rate').rate,
'id': eval(variable + 'Number')
});
eval('$scope.' + variable + 'Rate') = {
number: undefined,
type: undefined,
from: undefined,
to: undefined,
rate: undefined
};
}
Pour certains eval raison fonctionne très bien quand je pousse des valeurs à un tableau de variables. Cependant, pour une raison quelconque, eval('$scope.' + variable + 'Rate') =
ne fonctionne pas et j'obtiens l'erreur ReferenceError: Invalid left-hand side in assignment
. J'essaie de rendre ma fonction dynamique, afin que je puisse l'utiliser pour plus d'un $scope
. Comment résoudre ceci avec AngularJS?
Il arrive aussi d'échouer à ce point
function findRowIndex(variable, id){
eval('var ' + variable + 'Rows') = eval('$scope.' + variable);
}
Pourquoi utilisez-vous eval? Pas une bonne idée. – Phix
Pourquoi diable faites-vous cela? – Pytth
@Phix, Comment est-ce que je pourrais faire une fonction dynamique où je peux entrer le nom de la portée dans la fonction et modifier la portée avec le nom de la variable donnée? L'idée est que j'ai plusieurs tableaux $ scope qui utilisent les mêmes fonctions, à savoir add, qui sont exactement les mêmes, en plus des noms de variables. – PhyCoMath