加载中...

表达式函数化


13.4. 表达式函数化

$parse 这个服务,为 js 提供了类似于 Python 中 @property 的能力:

  1. var TestCtrl = function($scope, $parse){
  2. $scope.get_name = $parse('name');
  3. $scope.show = function(){console.log($scope.get_name($scope))}
  4. $scope.set = function(){$scope.name = '123'}
  5. }

$parse 返回一个函数,调用这个函数时,可以传两个参数,第一个作用域,第二个是变量集,后者常用于覆盖前者的变量:

  1. var get_name = $parse('name');
  2. var r = get_name({name: 'xx'}, {name: 'abc'});
  3. console.log(r);

$parse 返回的函数,也提供了相应的 assign 功能,可以为表达式赋值(如果可以的话):

  1. var get_name = $parse('name');
  2. var set_name = get_name.assign;
  3. var r = get_name({name: 'xx'}, {name: 'abc'});
  4. console.log(r);
  5. var s = {}
  6. set_name(s, '123');
  7. var r = get_name(s);
  8. console.log(r);

还没有评论.