首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示静态文本的简单指令

显示静态文本的简单指令
EN

Stack Overflow用户
提问于 2014-12-18 18:13:36
回答 2查看 1.5K关注 0票数 1

我们的应用程序没有使用角1.3 (但是,我们必须在更新之前检查依赖项),但是我需要在一些简单的文本属性中使用一次绑定从1.3。

写了这个指令来完成

代码语言:javascript
复制
 return {
      scope: {
        'text': '='
      },
      restrict: 'AE',
      template: '{{ text }}',
      link: function link($scope, element, attrs) {
      }
    };

它是这样使用的

代码语言:javascript
复制
<span static-text text="friend.name">

问题在于它仍然在{{ text }}上添加了一个手表(来自巴塔朗的截图)

有没有一个简单的方式来显示一个文本没有永久手表?(看了看这个解决方案,但似乎太多了,不能显示一些文本)。

编辑:我最后使用了@arturgrzesiak和@PSL提出的解决方案,@arturgrzesiak的解决方案是在没有异步处理的情况下使用的,对于其他方案,我使用了@PSL。这两种解决方案都可以,但我会接受@PSL的解决方案,因为它涵盖了更多的场景。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-18 19:41:15

有一些好处,你有一个手表。一个示例是在实际代码中异步设置数据,这意味着绑定变量将在下一个摘要周期中得到更新。但在某些情况下,这是过分的(因此bindonce或其他监视删除库或1.3双向绑定存在)。以下是您可以做的一件事,只需使用一个手表,直到您获得数据,然后删除它,一旦您得到它,并手动设置从指令中的html。

代码语言:javascript
复制
return { 
   restrict: 'AE', 
   link: function link($scope, element, attrs) { 
       var unwatch = $scope.$watch(attrs.staticText, function(val){ //Set up temp watch
          if(val){ 
            unwatch(); //Unwatch it
            element.html(val); //Set the value
          } 
       });
    } 
};

把它当作

代码语言:javascript
复制
<span static-text="friend.name">
票数 1
EN

Stack Overflow用户

发布于 2014-12-18 19:36:13

解决方案比我在评论中提出的要复杂一些。

代码语言:javascript
复制
app.directive('once', function($parse){

  return function(scope, element, attrs){

      var parsed = $parse(attrs.once)(scope);
      element.html(parsed);

  }

});

演示

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

https://stackoverflow.com/questions/27553064

复制
相关文章

相似问题

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