我开发了与 PouchDB 数据库集成的 AngularJS 应用程序。当试图从数据库中获取信息时,$scope 变量只存在于方法内部。
db.allDocs({include_docs: true, descending: true}, function(err, doc) {
$scope.$apply(function(){
$scope.info = doc.rows;
});
});
$scope.select = function(id){
for(var i = 0; i < $scope.info.length; i++){
if(id == $scope.info[i].doc._id){
$scope.$apply(function (){
$scope.sName = $scope.info[i].doc.name;
$scope.sSurname = $scope.info[i].doc.surname;
$scope.sPhone = $scope.info[i].doc.phone;
$scope.sAddress = $scope.info[i].doc.address;
console.log($scope.info[i].doc);
});
}
}
};
这里我调用 Select 函数来选择一个用户,然后我想在输入中显示该用户,以便我可以更新信息。
<div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar" role="navigation">
<h3>All users</h3>
<div class="list-group">
<a href="#" ng-repeat="i in info" class="list-group-item" ng-click="select(i.doc._id)">{{i.doc.name + ' ' + i.doc.surname}}</a>
</div>
</div>
这里我使用 $scope 变量
<div class="col-xs-6 col-sm-3 sidebar-offcanvas" style="margin-left: 20%;">
<h3>Selected user</h3>
<input type="text" ng-model="sName" class="form-control" placeholder="Name" />
<input type="text" ng-model="sSurname" class="form-control" placeholder="Surname" />
<input type="text" ng-model="sPhone" class="form-control" placeholder="Phone" />
<input type="text" ng-model="sAddress" class="form-control" placeholder="Address" />
<br/>
<table>
<tr>
<td><button ng-click="" class="btn btn-lg btn-primary">Update</button></td>
<td><label style="visibility: hidden;">a;dl</label></td>
<td><button ng-click="" class="btn btn-lg btn-danger">Remove</button></td>
</tr>
</table>
</div>
$scope.sName, $scope.sSurname... 在选择函数之外未定义..
有什么帮助吗?