我有一个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
?