Javascript 设置Angular JS中包含的模板中的$scope变量的值
我有一个非常简单的设置,如下所示。我的问题是,在我从$http的成功回调中设置的两个变量中,一个反映在UI中,而另一个没有 正如您所看到的,我试图在控制器加载时显示进度,并在成功回调执行后将其隐藏。但是它不起作用,因为我在成功回调中设置的false似乎没有传播到UI中 messages.htmlJavascript 设置Angular JS中包含的模板中的$scope变量的值,javascript,ajax,angularjs,Javascript,Ajax,Angularjs,我有一个非常简单的设置,如下所示。我的问题是,在我从$http的成功回调中设置的两个变量中,一个反映在UI中,而另一个没有 正如您所看到的,我试图在控制器加载时显示进度,并在成功回调执行后将其隐藏。但是它不起作用,因为我在成功回调中设置的false似乎没有传播到UI中 messages.html {{message}} progress.tpl.html 控制器 app.controller('MessageController'、['$scope'、'$http'、'ROOT\u UR
{{message}}
progress.tpl.html
控制器
app.controller('MessageController'、['$scope'、'$http'、'ROOT\u URL'、'$q',
函数($scope,$http,ROOT\u URL,$q){
$scope.showSkipBtn=“false”;
$scope.title=“当日消息”;
$scope.showProgress=“true”;
$http.get(ROOT_URL+'get_message_for_the_day')。然后(函数(结果){
$scope.message=当天的result.data.message.replace(/\r?\n/g,
);
$scope.showProgress=“false”;
log($scope.showProgress);
});
}])
In progress.tpl.html删除showProgress周围的花括号ng show
对传递给它的表达式求值,如果表达式求值为truthy,则隐藏元素。字符串“false”
是truthy(以及您拥有的“true”
)。你可能想用布尔值false
和true
@Ian,我想你是对的,但你需要做的是回答,而不是评论。然后就可以投票了,它可以帮助其他人在问题列表中看到什么有答案,什么已经被成功回答。@johnmunch实际上,我错了。刚才公布的答案似乎是正确的。我不知道为什么,但我不认为字符串“true”和“false”会起作用。简单地删除{{}}
(我想在我的评论中包括它,现在我看到了),就解决了这个问题,没有使用布尔真和假作为建议,但是对于这样的计算,使用布尔值,而不是字符串
<div>
<div ng-include="'partials/common/progress.tpl.html'"></div>
<div>{{message}}</div>
<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);
});
}])