javascript - 解析 Angular Directive(指令)中的范围变量

标签 javascript angularjs

我正在创建一个 Angular Directive(指令)(元素),它将对其中的文本应用一些转换。

这是指令:

module.directive('myDir', function() {
    return {
      restrict: 'E',
      link: function(scope, elem, attrs) {
        console.log(elem.text());       
      },
    };
  });

现在我刚刚在其中放置了一个 console.log 以确保我看到了预期的文本。

如果我的 html 是这样的,它会按预期工作:

<my-dir>Hello World!</my-dir>

但是,如果我使用范围内的变量,如下所示:

<my-dir>{{myMessage}}</my-dir>

这就是我在控制台输出中看到的文本,而不是变量值。我想我明白为什么输出是这样的,但是我不确定如何获得正确的值。要求是指令应该能够转换两个示例中的文本。

想法?

最佳答案

使用$interpolate将字符串转换为函数的服务,并将范围作为参数应用以获取值( fiddle ):

module.directive('myDir', function($interpolate) {
    return {
      restrict: 'E',
      link: function(scope, elem, attrs) {
        console.log($interpolate(elem.text())(scope));
      },
    };
  });

关于javascript - 解析 Angular Directive(指令)中的范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32511754/

相关文章:

javascript - p5js定位 Canvas 未捕获类型错误

javascript - 不知道如何正确使用 reduce

javascript - 使用 Angular 根据下拉列表中选择的对象迭代对象内部的对象?

javascript - 如何在选中另一个复选框时取消选中默认复选框 - Angular

javascript - 在 GraphQL 中上传图片

javascript - 三张图片组合 jquery

javascript - Window.Location.Href 或其他重定向 _self 的方法不起作用(MVC View )

angularjs - 在基于范围的事件监听器的注册过程中,组件被分离

javascript - 检查复选框是否已定义

javascript - AngularJs - 如何在 ng-repeat 中的每次迭代中过滤嵌套数组对象?