我试图更好地理解$ parse和$ eval,并弄清楚它们是否(或可以)以我认为可能的方式使用。我创建了一个plnkr来显示我的问题并参考他们的行
我有一个布尔表达式作为字符串值的对象,它将从外部源提供给我(script.js行6- 10):
$scope.input123456abcdefg;
$scope.object123456abcdefg = {
disabled: "input123456abcdefg == 'hello'"
};
我已经尝试了一些代码走查,所有这些2种类型的业务/功能已基本归结为(我的理解)(的script.js线12-15):
var template_v1 = $parse('object123456abcdefg.disabled');
$scope.expression_v1 = template_v1($scope);
$scope.expression_v2 = $scope.$eval('object123456abcdefg.disabled');
我期待(希望)为$ parse或$ ev人要做的就是创建一个相当于(的script.js第17行):
$scope.expression_v3 = $scope.input123456abcdefg == 'hello';
不过,我才会返回相同的字符串,当我开始,你可以在DOM见评估(index.html的行24 & 28)。
可以用这种方式使用$ parse或$ eval,如果是的话,我在哪里放球?或者在Angular中有另一个选项可以正确执行这种类型的操作?
即时通讯99%的把握,你可以简单地使用数组语法和忘记的eval() – dandavis
别。只因为你可以不意味着你应该。 –