简述一下需求:需要根据绑定的model数据的值来判断某个区域是显示还是隐藏?
解决办法:使用angularjs的ng-show 标签完成
首先想到的时候在页面初始化加载model时使用ng-show=“check()”,去js中调用该check方法来判断model的某一属性是否为空或者其他,从而ng-show根据返回的boolean值来判断是否显示该区域。能够达到目的。
代码如下:
<span ng-show="checkFilePath()">
<button type="button" ng-click="downloadFile()"
class="btn btn-default">下载模板文件
</button>
</span>
// 判断模板文件地址是否存在,存在则显示下载模板文件,不存在则隐藏
$scope.checkFilePath = function (){
if($scope.filename == ""||$scope.filename==null||typeof $scope.filename=='undefined'){
return false;
}else{
return true;
}
}
但是又不满足另一需求,在某一刻,我需要在加载完页面做其他操作的时候去显示这个区域,好像再调用上面定义的check方法已经不起作用了,定义的check只是在页面初始化的时候回去调用,再后续操作中就不适用了。
后来想了想就定义一个标志通过js来控制它的显示,代码如下
<span ng-show="visible">
<button type="button" ng-click="downloadFile()"
class="btn btn-default">下载模板文件
</button>
</span>
$scope.visible = true ;
这样可以在初始化操作中设置一次,在加载完成之后的后续操作中,点击某一触发事件,还可以再设置一下,这样是没有问题的。
有人会说,为啥你不一上来就这么搞。原因很简单,刚学这东西,好多东西都在摸索中!