0
我有一個非常簡單的設置,如下所示。我的問題是,我在$ http的成功回調中設置的兩個變量中,一個反映在UI中,另一個反映在另一箇中。
正如你可以看到即時通訊試圖顯示控制器加載時的進度,並在成功回調執行後隱藏它。但它不起作用,因爲我在成功回調中設置的錯誤似乎並未傳播給用戶界面。
messages.html
<div>
<div ng-include="'partials/common/progress.tpl.html'"></div>
<div>{{message}}</div>
progress.tpl.html
<div ng-show="{{showProgress}}" class="overlay" id="overlay"></div>
控制器
app.controller('MessageController',['$scope','$http','ROOT_URL','$q',
function($scope,$http,ROOT_URL,$q) {
$scope.showSkipBtn = "false";
$scope.title = "Message of the Day";
$scope.showProgress = "true";
$http.get(ROOT_URL+'get_message_for_the_day').then(function(result){
$scope.message = result.data.message_of_the_day.replace(/\r?\n/g,'<br/>');
$scope.showProgress = "false";
console.log($scope.showProgress);
});
}])
花括號'NG-show'評估傳遞給它的表達,如果表達式的計算結果爲truthy隱藏元件。字符串「false」是truthy(以及你所擁有的「true」)。你可能正在使用布爾型的「假」和「真」# – Ian
@我認爲你是對的,但你需要做出這個答案而不是評論。然後它可以被投票,它可以幫助其他人看到問題清單,答案和答案。 –
@JohnMunsch其實我錯了。剛剛發佈的答案似乎是正確的。我不確定爲什麼,但我認爲字符串「真」和「假」都不起作用。簡單地刪除'{{}}'(我的意見包括在我的評論中,現在我看到它了),修正了這個問題,而不使用布爾真/假 – Ian