如果json使用angularjs返回[false],则显示ng-show

时间:2016-11-16 12:16:25

标签: javascript html angularjs json

我刚接触到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;
           });
})

5 个答案:

答案 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页面被视为范围。