J'ai une chaîne que j'ai obtenue à partir d'un routeParam
attribut de directive ou d'un autre, et je veux créer une variable sur la portée en fonction de cela. Alors:
$scope.<the_string> = "something".
Cependant, si la chaîne contient un ou plusieurs points, je veux la diviser et en fait "explorer" la portée. Alors 'foo.bar'
devrait devenir $scope.foo.bar
. Cela signifie que la version simple ne fonctionnera pas!
// This will not work as assigning variables like this will not "drill down"
// It will assign to a variables named the exact string, dots and all.
var the_string = 'life.meaning';
$scope[the_string] = 42;
console.log($scope.life.meaning); // <-- Nope! This is undefined.
console.log($scope['life.meaning']); // <-- It is in here instead!
Lors de la lecture d'une variable basée sur une chaîne, vous pouvez obtenir ce comportement en faisant $scope.$eval(the_string)
, mais comment le faire lors de l'attribution d'une valeur?