我刚接触到angulars,我正在开展一个项目,我希望div只在json数据返回时显示<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!DOCTYPE html>
<html ng-app="myFirst">
<head>
<title>This is Angular JS tutorial</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
</head>
<body>
<div ng-controller="cont">
{{message}}
</div>
</body>
</html>
。当查询没有结果时,我有时会让json返回[false]
。
JS
[false]
HTML
.controller('query_ctrl', function($scope, $http){ $http.get('http://localhost/db/templates/search/matches.php').success(function(data){
console.log(JSON.stringify(data));
$scope.matches=data;
});
})
答案 0 :(得分:3)
您无需在HTML中引用$ scope。
<div ng-controller="query_ctrl">
<div align="center" ng-show ="matches=='false'">json returned false
</div>
<div align="center" ng-show ="matches!='false'">json returned true
</div>
</div>
另外,正如上面的评论所说 - 我不确定你为什么要将值与字符串'false'进行比较,我假设您想要与布尔值false进行比较。见下文。
<div ng-controller="query_ctrl">
<div align="center" ng-show="matches==false">json returned false
</div>
<div align="center" ng-show ="matches!=false">json returned true
</div>
</div>
你可以通过将匹配作为表达式来使ng-show表达式更简洁,ng-show将评估它是否是真值,见下文。
<div ng-controller="query_ctrl">
<!-- Will show if matches is a false value -->
<div align="center" ng-show="!matches">json returned false
</div>
<!-- Will show if matches is a truthy value -->
<div align="center" ng-show ="matches">json returned true
</div>
</div>
答案 1 :(得分:1)
你在第一个ng-show中缺少一个=
,而且你也不需要为$ scope补充,应该是:
ng-show ="matches=='false'"
答案 2 :(得分:1)
除了在html文件中没有使用$ scope之外,一切似乎都很好。
<div ng-controller="query_ctrl">
<div align="center" ng-show ="matches=='false'">json returned false
</div>
<div align="center" ng-show ="matches!='false'">json returned true
</div>
</div>
仅使用匹配替换$ scope.matches。
“ng-show”或“ng-if”都可以用于此目的。
答案 3 :(得分:1)
您不需要在ng-show附近定义比较操作,您甚至可以这样做:
{{1}}
答案 4 :(得分:0)
.controller('query_ctrl', function($scope, $http){ $http.get('http://localhost/db/templates/search/matches.php').success(function(data){
console.log(JSON.stringify(data));
$scope.matches="data here";
}).error(function(error){
console.log("Error here");
$scope.matches="Error here"};
})
然后在HTML文件上你可以写:
<div ng-controller="query_ctrl">
<div align="center" ng-show ="matches=='data here'">json returned true
</div>
<div align="center" ng-show ="matches=='Error here'">json returned false
</div>
</div>
你所要做的就是在html中放宽$ scope这是因为HTML页面被视为范围。