0
$ http.getの後に.thenを付けて変数を取得していますが、フロントエンドで{{variable}}と一緒に使用したい場合は空になります。私はAngular 1.6.4を使用しています。
私はこれが非同期の問題だと思ったので、私はそれをラップしました。
コントローラー:
mainApp.controller('navBarController', ['$scope', '$http', '$q', function($scope, $http, $q){
$scope.profileID = '';
var getProfileID = function(){
return $http.get('/session');
};
getProfileID().then(function(res) {
console.log($scope.profileID = res.data.facebookProfileId);//this gives me the profileID as expected
$scope.profileID = res.data.facebookProfileId;
});
}]);
HTML:
<div class="navbar-collapse collapse" id="searchbar">
<ul class="nav navbar-nav navbar-right" ng-controller="navBarController">
<li><a href="/profile#/profile{{ profileID }}">Profile</a></li><!--the profileID is empty here-->
</ul>
</div>
私がここで行方不明ですか?
デバッグを試しましたか?あなたの 'profileID'にランダムな値を置いて、本当に非同期の問題かどうか確認してください。 – Roljhon
良いアイデアで、問題はasyncとは関係ないように隔離されています - ありがとう。しかし、何が起こっているのですか?私は周りを見続けるだろうが、あなたが何かを考えることができるならば、仲間を叫ぶ。 –
'ng-href'を使用して、コンソールに値を出力して定義済みであることを確認してください – svarog