2017-05-06 12 views
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> 

私がここで行方不明ですか?

+2

デバッグを試しましたか?あなたの 'profileID'にランダムな値を置いて、本当に非同期の問題かどうか確認してください。 – Roljhon

+0

良いアイデアで、問題はasyncとは関係ないように隔離されています - ありがとう。しかし、何が起こっているのですか?私は周りを見続けるだろうが、あなたが何かを考えることができるならば、仲間を叫ぶ。 –

+1

'ng-href'を使用して、コンソールに値を出力して定義済みであることを確認してください – svarog

答えて

0

これは、NodeJSが{{varName}}を使用し、Angularを使用していたためです。だから、最初のapp.jsアプリでは、私はちょうど追加:

app.locals.delimiters = '<% %>'; 

をちなみに、私は「ホーガン-Expressのテンプレートエンジンを使用していました。

これは、ある時点で誰かに便利なことを期待しています。私は間違った場所で完全に見ていた。

関連する問題