【问题标题】:AngularJS : Disable databinding inside a directiveAngularJS:禁用指令内的数据绑定
【发布时间】:2015-03-10 17:46:48
【问题描述】:

我有一个指令用于突出显示代码(语法突出显示)。有时,此文本包含花括号,并且 Angular 会尝试绑定它们。我怎样才能禁用该绑定:

app.directive('highlightJs', ['$timeout',function ($timeout) {
    return {
      restrict: 'AE',
      link    : function (scope,elem,$scope) {
        $timeout(function(){
          var x=elem[0].innerHTML;
          elem[0].innerHTML='<pre><code>'+x+'</code></pre>';
          console.log(x);
          hljs.highlightBlock(elem[0]);
        },0);
      }
    };

使用示例:

<highlight-js>
 &lt;img ng-src='{{url}}'/&gt;
<highlight-js>

呈现为&lt;img ng-src=""/&gt; 而不是&lt;img ng-src="{{url}}"/&gt;

任何帮助都会很棒。

【问题讨论】:

  • 看看这个earlier SO post,做一些类似的事情,涉及code元素和ngNonBindable
  • @JamesWing 我看到了,但是在指令中添加一个属性不起作用,如果我将它添加到我的自定义指令中,我的整个指令将无法编译。
  • 能否将文本作为属性传入指令,所以是数据?
  • 不以这种方式发送数据不会那么用户友好。

标签: angularjs angularjs-directive angular-directive


【解决方案1】:

只是将其用于解决方案。虽然这可能不是一个完美的解决方案,但它仍然有效。

<highlight-js>
 <code ng-non-bindable>
  {{url}}
 </code>
</highlight-js>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多