Tôi có một chuỗi mà tôi đã nhận được từ một routeParam
hoặc một thuộc tính chỉ thị hoặc bất cứ thứ gì và tôi muốn tạo một biến trên phạm vi dựa trên điều này. Vì thế:
$scope.<the_string> = "something".
Tuy nhiên, nếu chuỗi chứa một hoặc nhiều dấu chấm, tôi muốn tách nó ra và thực sự "đi sâu" vào phạm vi. Vì vậy, 'foo.bar'
nên trở thành $scope.foo.bar
. Điều này có nghĩa là phiên bản đơn giản sẽ không hoạt động!
// 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!
Khi đọc một biến dựa trên một chuỗi, bạn có thể nhận được hành vi này bằng cách thực hiện $scope.$eval(the_string)
, nhưng làm thế nào để thực hiện điều đó khi gán một giá trị?