角度js中的$parse
提供程序如何工作,在哪种情况下它会有用,在哪种情况下分配fn可用。
答案 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