显示和隐藏
在 Angular 中的一切,都是基于模型的改变,进而通过标识符反映这些变化到界面上。
ng-show 和 ng-hide 可以做相同的事情。显示和隐藏是基于你传递给他们的表达式而定,即,当表达式为 true 时,ng-show 就显示,反之隐藏。当表达式为 true 时,ng-hide 就隐藏,反之显示。这些标识符是通过设置元素的样式 display:block 显示和 display:none 隐藏进行工作的。
CSS类和样式
通过 {{}} 解析来进行数据绑定,从而能够动态地设置类和样式。
ng-class 和 ng-style
在大型项目中,上面的方式会使得难以管理,以至于不得不同时阅读模版和 JavaScript 才能正确地创建 css 。
Angular 提供了 ng-class 和 ng-style 标识符。他们每一个都需要一个表达式。表达式执行的结果可能是下列之一:
选中的行
模版中,我们设置 ng-class 的值为 {selected:$index==selectedRow},当模型调用selectedRow 时将匹配 ng-repeat 的 $index,进而显示选中的样式。同样我们设置 ng-click 来通知控制器用户点了哪一行。
src 和 href 建议
建议使用 ng-src 和 ng-href。
<img ng-src=\"/img/01.png\"> <a ng-href=\"www.segmentfault.com\">segmentfault</a>
所有源码
<!DOCTYPE html>
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
<title>angular demo</title>
<script src=\"http://cdn.bootcss.com/angular.js/1.3.0-beta.8/angular.min.js\"></script>
</head>
<body>
<div id=\"App1\" ng-app=\"shoppingCart\" ng-controller=\"ShoppingCartController\">
<h1>Your demo</h1>
<!-- demo 1 -->
<div ng-show=\'menuState.show\'>another another another</div>
<button ng-click=\"test2()\">切换</button>
<hr><!-- demo 2 -->
<style type=\"text/css\">
.menu-disabled-true{
opacity:1;
color: red;
-webkit-transition:all 1000ms linear;
-moz-transition:all 1000ms linear;
-o-transition:all 1000ms linear;
}
.menu-disabled-false{
opacity: 0;
-webkit-transition:all 1000ms linear;
-moz-transition:all 1000ms linear;
-o-transition:all 1000ms linear;
}
</style>
<div class=\"menu-disabled-{{isDisabled}}\">adfadfadasda</div>
<button ng-click=\"test()\">隐藏</button>
<button ng-click=\"test1()\">显示</button>
<button ng-click=\"test11()\">切换</button>
<hr><!-- demo 3 -->
<style type=\"text/css\">
.error {
background-color: red;
}
.warning {
background-color: yellow;
}
</style>
<div ng-class=\'{error:isError, warning:isWarning}\'>{{messageText}}</div>
<button ng-click=\"showError()\">error</button>
<button ng-click=\"showWarning()\">warning</button>
<hr><!-- demo 4 -->
<style type=\"text/css\">
.selected{
background-color: lightgreen;
}
</style>
<div ng-repeat=\"item in items\" ng-class=\'{selected:$index==selectedRow}\' ng-click=\'selectedWhich($index)\'>
<span>{{item.product_name}}</span>
<span>{{item.price | currency}}</span>
</div>
</div>
<script>
var shoppingCartModule = angular.module(\"shoppingCart\", [])
shoppingCartModule.controller(\"ShoppingCartController\",
function ($scope) {
// demo 1
$scope.menuState = {\'show\':true};
$scope.test2 = function () {
$scope.menuState.show = !$scope.menuState.show;
};
// demo 2
$scope.isDisabled = true;
$scope.test = function () {
$scope.isDisabled = \'false\';
};
$scope.test1 = function () {
$scope.isDisabled = \'true\';
};
$scope.test11 = function () {
$scope.isDisabled = !$scope.isDisabled;
};
// demo 3
$scope.isError = false;
$scope.isWarning = false;
$scope.messageText = \'default, default\';
$scope.showError = function () {
$scope.messageText = \'This is an error\';
$scope.isError = true;
$scope.isWarning = false;
};
$scope.showWarning = function () {
$scope.messageText = \'Just a warning, donot warry\';
$scope.isWarning = true;
$scope.isError = false;
};
// demo 4
$scope.items = [
{ product_name: \"Product 1\", price: 50 },
{ product_name: \"Product 2\", price: 20 },
{ product_name: \"Product 3\", price: 180 }
];
$scope.selectedWhich = function (row) {
$scope.selectedRow = row;
}
}
);
</script>
</body>
</html>
本文地址:https://www.stayed.cn/item/3527
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我