我正在学习AngularJS,从“AngularJS启动和运行”一书中学习。这本书使用AngularJS版本1.2。书中的一个示例代码显示了ng-show指令是如何工作的。在本例中,对ng-show指令的用法的解释如下:
ng-检查变量,并根据其值的真实性,分别在UI中显示或隐藏元素。在这种情况下,我们说,如果note.assignee为真,请显示受让人的跨度。AngularJS将真、非空字符串、非零数字和非空JS对象视为真。因此,在这个例子中,如果票据有一个受让人,我们就可以看到受让人的跨度。
我正在粘贴下面的代码。(我的查询是在代码之后提供的。)
HTML:
<!-- File: chapter2/more-directives.html -->
<html ng-app="notesApp">
<head>
<title>Notes App</title>
<style>
.done {
background-color: green;
}
.pending {
background-color: red;
}
</style>
</head>
<body ng-controller="MainCtrl as ctrl">
<div ng-repeat="note in ctrl.notes"
ng-class="ctrl.getNoteClass(note.done)">
<span class="label"> {{note.label}}</span>
<span class="assignee"
ng-show="note.assignee"
ng-bind="note.assignee">
</span>
</div>
</body>
</html>脚本
<script
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.js">
</script>
<script type="text/javascript">
angular.module('notesApp', []).controller('MainCtrl', [
function() {
var self = this;
self.notes = [
{label: 'First Note', done: false, assignee: 'Shyam'},
{label: 'Second Note', done: false},
{label: 'Done Note', done: true},
{label: 'Last Note', done: false, assignee: 'Brad'}
];
self.getNoteClass = function(status) {
return {
done: status,
pending: !status
};
};
}]);
</script>在上面的代码中,声明了一个数组,其中有两个元素(第一个和最后一个),它们在“受让人”中有一些值。当我执行这段代码时,我可以看到数组的所有元素。ng-show指令并没有在“受让人”中隐藏带空值的“span”。代码是错的还是我对ng-show的理解是错的?
发布于 2017-04-24 03:46:41
应该是这样的
<div ng-show="note.assignee">
<span class="label"> {{note.label}}</span>
<span class="assignee" ng-bind="note.assignee"></span>
</div>https://stackoverflow.com/questions/43579346
复制相似问题