$http({
url: "php/myuId.php",
method: "POST",
data: {
'userId': userId,
},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function(data, status, headers, config) {
$scope.myId= data;
//return last inserted id
}).error(function(data, status, headers, config) {
});
//can't use it outside?
$scope.user.push({
"userId": $scope.myId,
});
很奇怪,当我在范围$ http之外使用它时,$ scope.myId没有改变,所以我无法将我最后插入的id推到前端。
答案 0 :(得分:2)
问题是它是异步的,所以在promise返回之前你还没有数据。您可以将$ scope.user.push放在成功回调中,也可以使用$ scope。$ watch(“myId”...在值更新时注册。
答案 1 :(得分:0)
尝试使用.apply();如果你不这样做,JS的变化就不会被看到或反映在UI中。
}).success(function(data, status, headers, config) {
$scope.apply(function(){
$scope.myId = data;
});
})