AngularJS指令属性:替换已弃用 - 等效?

时间:2015-07-09 08:06:36

标签: javascript angularjs

因此find /opt/lampp/htdocs -type f -exec chmod 644 {} \; 弃用指令的AngularJs属性。 reference

上下文:

Replace

这将输出:

  .directive('myDir', function($compile) {
    return {
      restrict: 'E',
      template: '<div>{{title}}</div>'
    }
  });

因此,<my-dir> <div> some title </div> </my-dir> 会将Replace替换为<my-dir></my-dir>。这几天有什么相同的?或者只是使用带有template的指令。

我创造了这个:

restrict: 'A'

将输出:

  .directive('myDir', function($compile) {
    return {
      restrict: 'E',
      template: '<div>{{title}}</div>',
      link: link
    };

    function link(scope, iElem, IAttr, ctrl, transcludeFn) {
      var parent = iElem.parent();
      var contents = iElem.html();

      iElem.remove();

      parent.append($compile(contents)(scope));
    }
  });

2 个答案:

答案 0 :(得分:4)

基本等同于$this->render('view')

replace: true

但是,您可以轻松发现副作用。绑定仍然存在,但指令中的属性不会被转换为模板。

幸运的是,除非需要条件app.directive('directive', function () { return { ... link: function postLink(scope, element, attrs) { element.replaceWith(element.contents()); } }; }); ,否则通常没有理由这样做。正如您已经注意到的那样replace被认为已被弃用(它不适用于Web组件概念),但对于1.x来说非常好。

答案 1 :(得分:2)

文档似乎已过时 - 指令的JProgressBar progress1 = new JProgressBar(); progress1.setStringPainted(true); progress1.setBounds(20, 124, 408, 23); frame.getContentPane().add(progress1); } 未被删除。

Source