AngularJS - 如何在文本框输入为空时隐藏按钮?

时间:2017-08-04 14:16:53

标签: javascript angularjs ng-show ng-hide angularjs-ng-show

我有一个AngularJS应用程序,在其中一个页面上,我显示了一个小部件。我在窗口小部件中添加了一个按钮,可以将用户带到应用程序的“主页”页面。我还在窗口小部件的“设置”对话框中添加了一个字段,允许用户指定要将哪个页面设置为“主页”。

目前这一切都正常 - 如果用户在“设置”对话框的字段中指定了页面,当他们单击“主页”页面时,他们将被带到他们指定的页面。如果他们未在“设置”对话框的字段中指定页面,则会将其转到“默认”主页。

我现在要做的是隐藏“主页”按钮,这样除非用户在“设置”对话框中实际指定了主页,否则它不会显示。

它当前显示在Widget指令中,带有模板:

template: '<section class="panel panel-frame" ' +
  'data-ng-class="{\'panel-brand\': !inverse(), ' +
  '\'panel-inverse panel-inverse-borderless\': inverse()}">' +
  '<div class="panel-heading" >' +
      '<span data-i18n="{{heading}}"></span>' +
      '<i class="pull-right ti-home" data-ng-click="goHomePage()" /> ' +
      '<data-ng-show="heading">' +
  '</div><ul-grid config="config" rows="tableRows || rows">' +
  '</ul-grid></section>',

我尝试添加ng-hide&amp; ng-show属于显示/隐藏它的按钮,具体取决于用户可以设置主页值的“设置”对话框中的字段是否具有值(即是否为{{1} },或者有一个值):

undefined

添加了这些template: '<section class="panel panel-frame" ' + 'data-ng-class="{\'panel-brand\': !inverse(), ' + '\'panel-inverse panel-inverse-borderless\': inverse()}">' + '<div class="panel-heading" >' + '<span data-i18n="{{heading}}"></span>' + '<i class="pull-right ti-home" data-ng-click="goHomePage()" ng-hide="widget.customhomepage == undefined" ng-show="widget.customhomepage != undefined" /> ' + '<data-ng-show="heading">' + '</div><ul-grid config="config" rows="tableRows || rows">' + '</ul-grid></section>', &amp; ng-hide属性到按钮,当我现在浏览到这个页面时,页面加载,但按钮没有显示在小部件上...我在控制台中的调试显示了保存值的变量放入“设置”对话框中的文本框为ng-show,即

  

未定义

如果我打开“设置”对话框,并在“customHomePage”字段中输入页面地址,&amp;单击“预览”,然后控制台显示输出:

  

/页/ userpage2

即。我输入框中的值。

但是,尽管undefined(文本框值)现在不等于widget.customHomePage(即undefined的条件,但小部件上不显示“主页”按钮应该运行...)。

我在这里做错了什么?为什么不显示“主页”按钮,即使显示它的ng-show()表达式明确评估为ng-show

0 个答案:

没有答案
相关问题