何时在Angular.js中使用$ parse

时间:2014-08-09 04:25:13

标签: javascript angularjs

角度js中的$parse提供程序如何工作,在哪种情况下它会有用,在哪种情况下分配fn可用。

2 个答案:

答案 0 :(得分:5)

$ parse对于评估字符串并返回可以操作模型或调用函数的函数非常有用。字符串中的任何变量都是从传递给函数的上下文中解析的。

获取和设置模型的属性

$ parse对于将角度表达式编译为可以获取/设置模型的函数非常有用。

例如,如果您想获取/设置user.name,则可以使用$parse('user.name')

<强>吸气剂

var context = { user: { name: 'john'}};
var getter = $parse('user.name');
var name = getter(context);
console.log(name); // outputs 'john'

<强>设置器

var context = { user: { name: 'john'}};
var setter = $parse('user.name').assign;
setter(context, 'tom');
console.log(context.user.name); //outputs tom

$ scope也可以作为上下文:

$scope.user = { name: 'john' };
var getter = $parse('user.name');
var name = getter($scope);
console.log(name); // outputs 'john'

调用函数

$ parse也可用于将角度表达式编译为可调用函数。

例如,如果要调用名为helloWorld()的函数:

var context = { 
      helloWorld: function(name) { 
           alert(name); 
      }, 
      user: {
           name:'john'
      }
};
var fn = $parse('helloWorld(user.name)');
fn(context); // alerts 'john'

答案 1 :(得分:2)

如果要将角度表达式转换为javascript函数,则需要使用$ parse。角度表达式是一个字符串,例如{{expression}}。

看看这篇文章。 $parse