Dav*_*ica 6 javascript equality object angularjs
如果对象非空,我正在尝试显示div.使用这个答案,我试图用来angular.equals
检查空虚,但它没有按预期行事
var test = angular.module('test',[]);
test.controller('testCtrl', ['$scope', function($scope){
$scope.foo={};
$scope.bar="bam"
}]);
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="test">
<div ng-controller="testCtrl">
<div ng-show="!angular.equals(foo,{})">{{bar}}</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这里的期望是bar
will 的值只显示if foo
不等于空对象.然而,foo
显然已经确定{}
并bar
仍然显示.
Phi*_*ret 10
如果angular
要从模板或表达式访问对象,则必须在要使用它的范围内使其可用.在这种情况下,你可以把它放在testCtrl
范围内.
var test = angular.module('test',[]);
test.controller('testCtrl', ['$scope', function($scope){
$scope.angular = angular;
$scope.foo={};
$scope.bar="bam"
}]);
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="test">
<div ng-controller="testCtrl">
<div ng-show="!angular.equals(foo,{})">{{bar}}</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我通常把实用工具放在上面$rootScope
,所以它们随处可见.
更简洁的方法是只将angular equals方法添加到$ scope:
var test = angular.module('test',[]);
test.controller('testCtrl', ['$scope', function($scope){
$scope.angularEquals = angular.equals;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以在模板中使用equals方法,例如:
<div ng-show="!angularEquals(foo,{})">{{bar}}</div>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10840 次 |
最近记录: |