所以说我有一个$scope变量定义如下:
$scope.data = { filter: { state: 'WA',country: 'US' } };
如何通过字符串在单独的服务中访问它?例如$scope范围内的data.filter.
所以说我有这样的服务方法:
function doSomething($scope,variableName) { // I want to access $scope[variableName] here?? }
我会从控制器中调用它,如下所示:
service.doSomething($scope,'data.filter');
您将需要使用
$eval:
function doSomething($scope,variable) { var data = $scope.$eval(variable); // this logs {state: "WA",country: "US"} console.log(data); }
但是,如果您希望每次内容更改时都执行某些功能,则最好使用$watch
function doSomething($scope,variable) { $scope.$watch(variable,function(data) { // this logs {state: "WA",country: "US"} console.log(data); }); }