我正在测试和应用,并希望做一些非常简单的事情。我想隐藏一个div,只有在扩展名添加到网址时才会在浏览器中显示。例如:
<div ng-hide="true" class="cookie-banner">
Warning you about cookies
</div>
我会通过添加 - &gt;看到隐藏的div ?秀= cookie的旗帜 到网址,所以本地网站如:../ webapp /#/ subscribed不会显示隐藏的div但是../webapp/#/subscribed?show=cookie-banner这会。我不确定我在做什么才能做到这一点。请帮忙!
答案 0 :(得分:1)
您可以在控制器或您创建的自定义指令中使用angular $location service,您希望根据$ location设置逻辑。$$ absUrl值。
//in your controller
app.controller('SomeController', ['$scope', '$location',
function ($scope, $location) {
$scope.hideBasedOnUrl = $location.$$absUrl.indexOf('show=cookie-banner') !== -1;
}]);
//html
<div ng-hide="hideBasedOnUrl " class="cookie-banner">
Warning you about cookies
</div>
//in a directive
app.directive("hideBasedOnUrl", function ($location) {
return {
restrict: "E",
link: function (scope, element, attrs, ngModelCtrl) {
if ($location.$$absUrl.indexOf('show=cookie-banner') !== -1){
element.style.display = "none";
}
}
}
});
//html
<div hideBasedOnUrl class="cookie-banner">
Warning you about cookies
</div>
使用该指令,您可以执行更高级的操作,例如将html中的url值作为属性传递给您,以便隐藏div。
希望这有帮助!
答案 1 :(得分:0)
我强烈建议不要使用您的网址作为在Angular中传递参数的方法。您正在寻找的功能应包含在控制器中。