首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ng-book示例未按预期工作

ng-book示例未按预期工作
EN

Stack Overflow用户
提问于 2014-09-03 23:17:13
回答 3查看 764关注 0票数 0

我目前正在阅读angular js的ng-book,并遇到了两段示例代码。

第一个处理$parse服务,可以在这里找到:http://jsbin.com/UWuLALOf/1/edit

第二个处理$interpolate,可以在这里找到:http://jsbin.com/oDeFuCAW/1/edit

这两种方法都没有达到预期的效果(我认为)。他们应该实时更新视图。我尝试在本地创建第一个示例,但得到了相同的结果。我认为这可能是因为angular的版本,但由于它使用的是来自google api的特定版本,这应该不是问题。我想弄清楚解析和插值服务在这里到底做了什么,所以任何想法都非常感谢。

谢谢

C

EN

回答 3

Stack Overflow用户

发布于 2016-09-29 17:42:16

不应将newVal参数传递给$parse函数,而应传递表达式'expr'

代码语言:javascript
运行
复制
$scope.$watch('expr', function(newVal, oldVal, scope) {
    if (newVal !== oldVal) {
        // Let's set up our parseFun with the expression
        var parseFun = $parse('expr');
        // Get the value of the parsed expression, set it on the scope for output
        scope.parsedExpr = parseFun(scope);
    }
});
票数 1
EN

Stack Overflow用户

发布于 2014-09-03 23:22:31

这是信标的角度版本,你附加到网站是不稳定的版本,使用这个

代码语言:javascript
运行
复制
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.min.js"></script>

但是,代码并没有像预期的那样工作

票数 0
EN

Stack Overflow用户

发布于 2014-09-03 23:41:30

代码按预期工作,但最有可能的情况是您没有预料到应该执行的操作:)

让我们一次只看一个:

代码语言:javascript
运行
复制
  $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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25648004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档