试图显示或隐藏基于ng-init变量的ng-include部分html模板的各个方面

时间:2016-04-06 01:37:31

标签: javascript html angularjs angularjs-ng-include ng-init

我试图隐藏,显示或更改基于ng-init值的部分html文件的样式。

我的部分是:

sh

在我的主html页面中,我有这样的设置:

export PRIVATE_KEY="$(printf %s '-----BEGIN RSA PRIVATE KEY-----\n....\n-----END RSA PRIVATE KEY-----')"

他们目前正在获取属性,就好像export PRIVATE_KEY="$(cat <<'EOF' -----BEGIN RSA PRIVATE KEY----- ... ... -----END RSA PRIVATE KEY----- EOF )"

我已经阅读了多篇关于何时以及何时不使用ng-init的文章,但我仍然对为什么这不会为每个div更新感到困惑。我在多个页面上使用此部分,因此将其包含为部分有意义。

1 个答案:

答案 0 :(得分:0)

改为使用自定义指令:

var directive = function() {
  return {
    restrict: 'EA',
    scope: {
      artist: '=',
      size: '='
    },
    templateUrl: '/partials/elements/posts/post-preview-regular.html'
  };
};

var module = angular.module('moduleName', [])
    .directive('directiveName', directive);

然后标记变为(在使用主模块正确注册指令模块之后):

<div class="row push-to-11 small-up-1 medium-up-2 large-up-3 section-spacer-large">
  <directive-name ng-if="desktop" class="column" size="'threequart-padding-bottom'" artist="true"></directive-name>
  <directive-name ng-if="desktop" class="column" size="'threequart-padding-bottom'" artist="false"></directive-name>
</div>

查看原始标记,您可能还需要将caption添加到范围并通过它,但它仍然不应该太麻烦。

一般来说,ng-initng-include更像是最后的指令。它们并不是真正意义上的日常使用。即使ngInit的{​​{3}}说:

  

可以滥用此指令将不必要的逻辑量添加到模板中。只有少数适​​当的用途......