在此处使用Angularjs:
我有一个表单,用户可以填写一些数据,然后单击“保存”按钮以保存数据:
$scope.save = function (isValid) {
if (isValid) {
if (!$scope.checkBoxChecked) {
$scope.getExistingName($scope.uName);
}
var name = $scope.uName != '' ? $scope.uName? : 'testuser';
//Call save api
}
else {
return false;
}
};
在save方法中,我正在检查uname,它通过调用另一个api来获得它的值,如下所示:
$scope.getExistingName = function (uName) {
myService.getDataFromApi(uName).then(function (data) {
var existingSetName = '';
if(data.length >0)
{
$scope.uName = data[i].uName;
}
});
}
问题是$ scope.u我的“保存”按钮中的名称始终为。我尝试调试,发现$ scope.getExistingName方法的结果 存在是诺言被延误并在原始召唤后返回。因此,我的$ scope.uName为空。
我在这里想念什么?
-更新----
保存方法:
var name = $scope.getExistingName($scope.uName);
更新了getExistingName
$scope.getExistingName = function (uName) {
return myService.getDataFromApi(uName).then(function (data) {
var existingSetName = '';
if(data.length >0)
{
return data[i].uName;
}
});
}
-这有效-
if (!$scope.checkBoxChecked) {
$scope.getExistingName($scope.uName).then(function(data)
{
var name = $scope.uName != '' ? $scope.uName? : 'testuser';
//Call save api
});
}
else
{
var name = $scope.uName != '' ? $scope.uName? : 'testuser';
//Call save api
}