我正在从AngularJS这本书开始学习AngularJS。本书使用AngularJS 1.2版。书中的示例代码之一显示了ng-show指令的工作原理。本例中ng-show指令的使用说明如下:
ng-show检查变量,并根据其真实性 分别在UI中显示,显示或隐藏元素。在这种情况下,我们 如果note.assignee为真,请显示受让人范围。 AngularJS对待 true,非空字符串,非零数字和非空JS对象 truthy。 所以在这种情况下,如果注释,我们会看到受让人的跨度 有受让人。
我正在粘贴下面的代码。 (我的查询是在代码之后给出的。)
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>
在上面的代码中,声明了一个数组,并且有两个元素(第一个和最后一个)在&#39;受让人中有一些值。当我执行这段代码时,我会看到数组的所有元素。 ng-show指令没有隐藏&#39; span&#39;在“受让人”中使用空值。代码是错误的还是我对ng-show的理解是错误的?
答案 0 :(得分:0)
应该是这样的
<div ng-show="note.assignee">
<span class="label"> {{note.label}}</span>
<span class="assignee" ng-bind="note.assignee"></span>
</div>