AngularJS 表達式函數(shù)化

2018-07-26 17:23 更新

$parse 這個服務,為 js 提供了類似于 Python 中 @property 的能力:

angular.module('app', [], angular.noop)
.controller('TestCtrl', function($scope){
  $scope.get_name = $parse('name');
  $scope.show = function(){console.log($scope.get_name($scope))}
  $scope.set = function(){$scope.name = '123'}
});

$parse 返回一個函數(shù),調用這個函數(shù)時,可以傳兩個參數(shù),第一個作用域,第二個是變量集,后者常用于覆蓋前者的變量:

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

$parse 返回的函數(shù),也提供了相應的 assign 功能,可以為表達式賦值(如果可以的話):

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

var s = {}
set_name(s, '123');
var r = get_name(s);
console.log(r);


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號