У мене є рядок, який я отримав з routeParam
атрибута a direktiva або будь-якого іншого, і я хочу створити змінну на області застосування на основі цього. Так:
$scope.<the_string> = "something".
Однак, якщо рядок містить одну або кілька крапок, я хочу розділити її і насправді "пробурити" в область. Так 'foo.bar'
повинно стати $scope.foo.bar
. Це означає, що проста версія не буде працювати!
// 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!
Читаючи змінну на основі рядка, ви можете отримати таку поведінку, виконуючи $scope.$eval(the_string)
, але як це зробити при призначенні значення?