什么!$ scope表示angularJS / Ionic?

时间:2016-02-15 03:22:03

标签: javascript angularjs ionic-framework angularjs-scope

就使用Ionic的这一行而言:

if (!$scope.yelp.isLoading && $scope.yelp.hasMore) {

!$scope是什么意思?这与$scope有什么不同?为什么在&&$scope而不是!$scope

(注意:这是新的,所以请用外行人的条款解释)

3 个答案:

答案 0 :(得分:1)

答案非常简单,与您使用比较的任何语言中的任何逻辑相同 在你的情况下,如果$ scope.yelp.isLoading为false,$ scope.yelp.isLoading将返回true,$ scope.yelp.hasMore将返回与$ scope.yelp.hasMore的值相关联的true或false,即true如果为真,如果为假,则为假。

$ scope只是angularjs自动创建的对象,它绑定脚本部分中的dom元素。

关于在绑定中使用$ scope和!$ scope的问题,是迄今为止最简单的比较逻辑。您正在检查yelp.isloading是否为false并且yelp.hasmore为true,您在if逻辑中插入。 (逻辑和运算符即&&&&&&&&&&&&&&&&&&&&&&&&&

您需要阅读angularjs的文档以及基本的编程操作符。

答案 1 :(得分:1)

符号表示否定。例如,如果 x 变量值为 true ,则否定会将 x 值反转为 false 反之亦然。

 !$scope.yelp.isLoading 

句子本身并未评估 $ scope $ scope.yelp.isLoading 是评估变量。

$ scope.yelp 是一个对象,句子正在加入 isLoading 元素。

e.g

$scope.yelp = {
   hasMore: false
   isLoading: true,
   ...
} //  $scope.yelp.isLoading === true , !$scope.yelp.isLoading === false

答案 2 :(得分:0)

@Sah(我无法发表评论)

  

为什么在&&&你做范围而不是!$范围?

它不会应用于第二个条件,因为您的代码可能需要第一个条件为true而第二个条件同时为false。 我们需要您发布更多业务代码,以了解在满足这两个条件时要做什么。