为什么我的指令不会插入其范围变量?

时间:2014-10-11 06:00:40

标签: javascript angularjs angularjs-directive

我尝试编写一个指令来替换带有嵌入式样式定义的CSS链接。

Here is a working version.

现在,我希望通过插值实现该功能,因此我不必设置样式元素的innerHtml。不幸的是,这似乎是不可能的。我可以将CSS附加到范围,但Angular不会插入代码。

Here is the offending version:

.directive('link', function(CssSvc) {
  return {
    restrict: 'E',
    replace: true,
    scope: {},
    template: '<style type="text/css">{{css}}</style>',
    link: function(scope, elem, attr) {
      scope.$watch(function() { return CssSvc.css }, function() {
        scope.css = CssSvc.css;
      })
    }

  }
})

有人可以解释为什么这不起作用,如果有办法让Angular执行插值?

1 个答案:

答案 0 :(得分:0)

我使用的Angular版本似乎存在问题。

This one, using version 1.3rc2, works just fine.

<script data-require="angular.js@1.3.0-rc2" data-semver="1.3.0-rc2" src="https://code.angularjs.org/1.3.0-rc.2/angular.js"></script>\

感谢reddit用户CureEgg,我现在知道 this was fixed as a bug in 1.3