Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置Angular JS中包含的模板中的$scope变量的值_Javascript_Ajax_Angularjs - Fatal编程技术网

Javascript 设置Angular JS中包含的模板中的$scope变量的值

Javascript 设置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

我有一个非常简单的设置,如下所示。我的问题是,在我从$http的成功回调中设置的两个变量中,一个反映在UI中,而另一个没有

正如您所看到的,我试图在控制器加载时显示进度,并在成功回调执行后将其隐藏。但是它不起作用,因为我在成功回调中设置的false似乎没有传播到UI中

messages.html


{{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);
    });            
}])