ng-if没有按预期工作

时间:2016-11-08 19:45:52

标签: javascript angularjs

我的模型中有一个按钮数组,并且有一个 如果'在每个按钮的模板中:

self.aButtons.push({
                label: __('Siguiente'),
                class: 'btn-moduloAvance',
                show: (self.oContrato.definirPago || self.oContrato.horario_definido)
                }
            });

那是Html:

  <button ng-if="boton.show"
          ng-repeat="boton in personaAndContrato.aButtons"
          type="button"
          ng-class="boton.class"
  />

我知道我正在为&#39; show&#39;分配一个布尔值。财产,所以它不可能改变,因为它是一个简单的类型。

顺便说一句,我试图将功能分配给“节目”。财产,但我收到以下错误:

    self.aButtons.push({
                label: __('Siguiente'),
                class: 'btn-moduloAvance',
                show: function () {
                    return (self.oContrato.definirPago || self.oContrato.horario_definido);
                }
            });

Html(已编辑):

<button ng-if="boton.show()"
      ng-repeat="boton in personaAndContrato.aButtons"
      type="button"
      ng-class="boton.class"
/>
  

TypeError:v2.show不是函数       at fn(eval at compile(angular.js?version = alpha.1:14539),:4:240)

一些想法?我是否缺少或误解了什么?

提前致谢!

2 个答案:

答案 0 :(得分:2)

如果ng-repeat引用ng-if的内部变量,则同一标记中不能包含ng-ifng-repeat

将其分开:

<div ng-repeat="boton in personaAndContrato.aButtons">
    <button ng-if="boton.show()"
      type="button"
      ng-class="boton.class"
   />
</div>

答案 1 :(得分:1)

更改为ng-if="boton.show()"即可。