我是编程新手,正在尝试学习angularJS来构建一个Web应用程序。我遇到了一个示例联系人管理器应用程序,我很难理解其中的一部分,即检查联系人是否存在的部分:
if($scope.newcontact.id == null)
好的,我知道这是否是一个新联系人,但我不明白逻辑上发生了什么。我读了null
并理解它意味着被评估的东西已知存在,但没有价值。
这是否意味着'newcontact.id存在但没有值'?
以下是该应用的javascript部分:
var uid = 1;
function ContactController($scope) {
$scope.contacts = [
{ id:0, 'name': 'Viral',
'email':'hello@gmail.com',
'phone': '123-2343-44'
}
];
$scope.saveContact = function() {
if($scope.newcontact.id == null) {
//if this is new contact, add it in contacts array
$scope.newcontact.id = uid++;
$scope.contacts.push($scope.newcontact);
} else {
//for existing contact, find this contact using id
//and update it.
for(i in $scope.contacts) {
if($scope.contacts[i].id == $scope.newcontact.id) {
$scope.contacts[i] = $scope.newcontact;
}
}
}
//clear the add contact form
$scope.newcontact = {};
}
$scope.delete = function(id) {
//search contact with given id and delete it
for(i in $scope.contacts) {
if($scope.contacts[i].id == id) {
$scope.contacts.splice(i,1);
$scope.newcontact = {};
}
}
}
$scope.edit = function(id) {
//search contact with given id and update it
for(i in $scope.contacts) {
if($scope.contacts[i].id == id) {
//we use angular.copy() method to create
//copy of original object
$scope.newcontact = angular.copy($scope.contacts[i]);
}
}
}
}
答案 0 :(得分:2)
if ($scope.newcontact.id == null)
如果$scope
存在并且$scope
有一个名为newcontact
的属性,该属性也存在且newcontact
有一个名为id
且id
的属性没有分配值。
通过该语句,作者假设(或先前已检查过)$scope
存在且不为空并且$scope.newcontact
存在且不为空。显式检查是id
是newcontact
上尚未分配值的属性。