2017-05-06 138 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

好主意,它隔離與異步無關的問題 - 謝謝。然而,到底發生了什麼?我會繼續環顧四周,但如果你能想到什麼,請大聲喊叫。 –

+1

使用'ng-href',同樣將值打印到控制檯以確保它的定義 – svarog

回答

0

這是因爲NodeJS使用{{varName}},Angular也是如此。因此,在最初的app.js的應用程序,我只是說:

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

順便說一句,我用的是公司的霍根-Express的模板引擎。

希望這可以在某些時候派上用場。我當時完全看錯了地方。