【发布时间】:2017-07-19 20:06:15
【问题描述】:
如何以角度显示特定网址的按钮?
<button class="abc" ng-model="btn1">hide</button>
如果我想在特定页面上显示这个按钮怎么办?
【问题讨论】:
标签: angularjs
如何以角度显示特定网址的按钮?
<button class="abc" ng-model="btn1">hide</button>
如果我想在特定页面上显示这个按钮怎么办?
【问题讨论】:
标签: angularjs
我通常为此使用 ng-if 或 ng-show
<button ng-if="showMe" class="abc" ng-model="btn1">hide</button>
在你要设置的控制器或指令中
$scope.showMe = true/false
取决于哪个 url 允许显示此按钮。
【讨论】:
假设你使用的是 Angular 的默认路由器,你可以试试这个:
查看:
<button ng-if="showButton" class="abc" ng-model="btn1">hide</button>
控制器:
$scope.showbutton = $location.url()==='your/url';
如果更适合您的需求,您也可以使用 $location.path()。我让你看看文档:https://docs.angularjs.org/api/ng/service/$location
如果您使用的是 ui-router,您可以直接检查 HTML 中的状态。你可以看看这个答案的例子:https://stackoverflow.com/a/27578532/2660180
【讨论】:
使用 Angular $location 服务。它会解析浏览器地址栏中的 URL(基于 window.location)并使 URL 可用于您的应用程序。
获取当前页面url的方法:
absUrl() : 它将返回完整的 URL
示例:
// given URL http://example.com/#/some/path?foo=bar&baz=xoxo
var absUrl = $location.absUrl();
// => "http://example.com/#/some/path?foo=bar&baz=xoxo"
path() : 不带任何参数调用时返回当前 URL 的路径。
示例:
// given URL http://example.com/#/some/path?foo=bar&baz=xoxo
var path = $location.path();
// => "/some/path"
因此,您可以这样尝试:
控制器:
$scope.path = $location.path();
HTML:
<div ng-hide="path === '/pathname'">
<button class="abc" ng-model="btn1">hide</button>
</div>
【讨论】: