我目前正在阅读angular js的ng-book,并遇到了两段示例代码。
第一个处理$parse服务,可以在这里找到:http://jsbin.com/UWuLALOf/1/edit
第二个处理$interpolate,可以在这里找到:http://jsbin.com/oDeFuCAW/1/edit
这两种方法都没有达到预期的效果(我认为)。他们应该实时更新视图。我尝试在本地创建第一个示例,但得到了相同的结果。我认为这可能是因为angular的版本,但由于它使用的是来自google api的特定版本,这应该不是问题。我想弄清楚解析和插值服务在这里到底做了什么,所以任何想法都非常感谢。
谢谢
C
发布于 2014-09-03 23:41:30
代码按预期工作,但最有可能的情况是您没有预料到应该执行的操作:)
让我们一次只看一个:
$scope.$watch('expr', function(newVal, oldVal, scope) {
if (newVal !== oldVal) {
// Let's set up our parseFun with the expression
var parseFun = $parse(newVal);
// Get the value of the parsed expression, set it on the scope for output
scope.parsedExpr = parseFun(scope);
}
});模型已设置,并且正在监视expr变量的更改,该变量通过ng- $scope.$watch与输入值绑定
如果您更改了输入中的expr值,则会将其发送到$parse进行计算(在本例中,名称应为2,名称应为{" name ":"Ari Lerner"} )。$parse会将字符串表达式转换为函数,因此记住这一点,您应该知道会发生什么。
在第二个示例中,当主体部分通过文本区域更改时,模板通过$interpolate呈现,它将计算{{ }}中的任何内容,然后呈现html。
https://stackoverflow.com/questions/25648004
复制相似问题