我有一个存储在JSON对象中的字符串,我从API中获取该字符串。如果没有要显示的字符串,我似乎无法使用ng-show
隐藏它。
在实际的控制器中,我在尝试各种事情时得到了这些结果:
string === null
给了我true
string.length
给了我Cannot read property 'length' of null
typeof string
给了我object
angular.equals({}, string)
给了我false
angular.isObject(string)
给了我false
null
我已经尝试了所有我能想到的东西,但是当这里有一个空字符串时,我似乎无法理解ng-show
。供您参考,当string
有一个值时,它只是一个简单的"string"
存储在JSON中。
所以我只想检查一下是否真的有一个字符串。有什么想法吗?
来自控制台的示例JSON:
Object {
name: null
}
答案 0 :(得分:2)
使用双重否定将其转换为布尔值?
var isString = !!string;
这会在字符串存在时将其转换为true
,或者在false
时将字符串转换为<{1}}。
你所描述的都是正确的。 null
的类型是JavaScript中的对象。
最简单的方法就是执行以下操作:
ng-show="string"
或者我之前说过的可能更正确,因为你传递了布尔
ng-show="!!string"
答案 1 :(得分:1)
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.stringData= "";
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<html>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<div ng-show = "stringData && stringData.length">{{stringData}}</div>
<input type="textbox" ng-model = "stringData">
</div>
</body>
</html>