angular js ng-hide实时不起作用

23 浏览
0 Comments

angular js ng-hide实时不起作用

如果变量$scope.city为空,则我想要隐藏一段html代码:

{{forecast.data.city.country}} ,{{forecast.data.city.name}}

Forcast for : {{city}}

City@

尽管它们是绑定的,但元素并不实时隐藏,只有当我打开那个页面时,$scope.city变量已经为空时才隐藏。还有一个名为varService的变量,用于在多个控制器之间共享变量。以下是Angular代码:

app.controller('forecastController', ['$scope','varService','$http', function($scope,varService,$http){

$scope.$watch('city', function() {

varService.city = $scope.city;

});

$scope.city = varService.city;

$scope.numOfDays = 2;

$scope.days = 2;

$scope.$watchGroup(['days', 'city'], function() {

$http.get('http://api.openweathermap.org/data/2.5/forecast?q='+$scope.city+'&mode=json&appid=e652a2c384655ea24f5b12d2fb84c60f&cnt='+$scope.days+'&units=metric')

.then(function(data) { $scope.forecast = data; });

});

}]);

那么,我如何使ng-hide在$scope.city变化时实时生效呢?谢谢。

0
0 Comments

AngularJS中的ng-hide指令用于根据表达式的值来隐藏或显示元素。然而,有时候在实时中使用ng-hide指令时可能会出现不起作用的情况。本篇文章将介绍可能导致这个问题的原因以及解决方法。

问题的原因可能是使用了不正确的条件表达式。在ng-hide指令中,我们需要提供一个条件表达式,该表达式的值决定了元素是否应该被隐藏。如果条件表达式的值为真,则元素将被隐藏。在这种情况下,可能是条件表达式不正确导致了ng-hide指令不起作用。

解决这个问题的方法是确保条件表达式的正确性。在这种情况下,我们可以尝试以下代码:

ng-hide="city == ''"

这个条件表达式检查变量city是否为空字符串。如果city的值为空字符串,则元素将被隐藏。

通过使用这个条件表达式,我们可以解决ng-hide在实时中不起作用的问题。但需要注意的是,确保在使用ng-hide指令时,条件表达式的值能够正确地决定元素的显示与隐藏。

希望本文能够帮助到你解决ng-hide在实时中不起作用的问题。

0
0 Comments

问题:在实时中,使用ng-hide无法实现功能。

原因:ng-hide指令在元素上添加了display: none样式来隐藏元素。然而,它并没有从DOM中移除元素,仍然占据着空间。因此,在实时中,当使用ng-hide来隐藏元素时,元素仍然存在于DOM中,只是不可见。

解决方法:改用ng-if指令代替ng-hide指令。ng-if指令在条件为true时会在DOM中创建元素,条件为false时会从DOM中移除元素。这样,在实时中,使用ng-if指令可以实现元素的实时隐藏和显示。

以下是修改后的代码示例:

{{forecast.data.city.country}} ,{{forecast.data.city.name}}

Forcast for : {{city}}

或者:

{{forecast.data.city.country}} ,{{forecast.data.city.name}}

Forcast for : {{city}}

通过使用ng-if指令替代ng-hide指令,可以在实时中实现元素的隐藏和显示功能。

0
0 Comments

问题:ng-hide在实时中不起作用的原因是什么?如何解决这个问题?

原因:ng-hide/ng-show指令期望一个表达式作为参数,而不是一个通过双花括号({{}})进行求值的表达式。因此,在控制器中,已经将city绑定到了$scope对象上,不需要使用双花括号来将其求值为true或false。只需提供表达式,如"city.length===0"即可。

解决方法:将ng-hide指令中的表达式从ng-hide="{{city === ''}}"修改为ng-hide="city.length===0"。这样,ng-hide指令将根据city的长度是否为0来决定是否隐藏元素。

完整代码如下:

...

通过以上修改,ng-hide指令将根据city的长度是否为0来实时判断是否隐藏元素。

0