【问题标题】:Dynamically change ng-if in custom directive在自定义指令中动态更改 ng-if
【发布时间】:2016-04-13 08:09:26
【问题描述】:

有如下代码(玉):

    img(
      data-ng-src = "{{ ctrl.getAttachmentPreview(attachment) }}",
      data-ng-if  = "attachment.media_type == 'image'",
      data-image-error = "xxx"
    )

还有我的自定义指令(咖啡):

module.exports = (app) ->
  app.directive 'imageError', ->
    restrict: 'A',
    link: ($scope, el, attrs, ctrl) ->
      el.attr('data-ng-if', 'false')

这是一个原型。我想使用“ng-if”在我的自定义指令中隐藏元素,但此代码不起作用(元素具有“data-ng-if”和“false”值,但仍然可见)。我该如何解决?提前致谢

【问题讨论】:

  • 设置属性不够,还需要编译HTML。
  • 请给我代码示例
  • @dfsq 请回答
  • 我不懂CS和Jade,所以我只能建议:也许你不需要改变属性,也许el.hide()就足够了?
  • 可能是个不错的选择

标签: javascript angularjs coffeescript pug


【解决方案1】:

ng-if 告诉 Angular 观察 $scope 并在 $scope 更改时评估给定的表达式,包括取决于结果的 DOM 节点。

直接操作它不会做任何事情。

相反,操作 $scope:

module.exports = (app) ->
  app.directive 'imageError', ->
    restrict: 'A',
    link: ($scope, el, attrs, ctrl) ->
      $scope.attachment = media_type: 'image'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-14
    • 2016-07-24
    • 2019-10-18
    • 1970-01-01
    • 2015-11-10
    • 2021-09-27
    • 2019-05-22
    • 1970-01-01
    相关资源
    最近更新 更多