当前位置: 首页 > 面试题库 >

AngularJS未定义或为null

慕弘深
2023-03-14
问题内容

当我编写手表处理函数时,我会在undefined和上检查newVal参数null。为什么AngularJS具有这种行为,却没有特定的实用程序方法?所以有angular.isUndefined但没有angular.isUndefinedOrNull。手动实现并不难,但是如何扩展角度以在每个控制器中具有该功能?Tnx。

编辑

这个例子:

$scope.$watch("model", function(newVal) {
    if (angular.isUndefined(newVal) || newVal == null) return;
    // do somethings with newVal
}

处理这种方法是否普遍接受?

编辑2

JSFiddle示例(http://jsfiddle.net/ubA9r/):

<div ng-app="App">
  <div ng-controller="MainCtrl"> 
      <select ng-model="model" ng-options="m for m in models">
          <option value="" class="ng-binding">Choose model</option>
      </select>
      {{model}}
  </div>
</div>

var app = angular.module("App", []);

var MainCtrl = function($scope) {
    $scope.models = ['Apple', 'Banana'];
    $scope.$watch("model", function(newVal) {
        console.log(newVal);
    });
};

问题答案:

您始终可以为您的应用程序完全添加它

angular.isUndefinedOrNull = function(val) {
    return angular.isUndefined(val) || val === null 
}


 类似资料:
  • 问题内容: 我正在尝试使用拦截器的基本示例,因此我盯着一些代码但没有成功: 当启动索引页面时,控制台中出现错误消息: 任何想法? 谢谢 问题答案: 您的代码是完美的。您需要确保使用的是正确版本的angularjs。$ http.interceptors数组是在1.1.4版中添加的。 我为您的示例使用了angular 1.1.4做了一个小问题,请在此处查看http://plnkr.co/edit/c

  • 问题内容: 我有以下Angular函数: 但是无论何时调用此函数,我都会进入 控制台。有人可以帮助我了解我在做什么错吗? 问题答案: 可能您尚未向控制器注入服务。有几种方法可以做到这一点。 请阅读有关DI的参考。然后,它变得非常简单:

  • 问题内容: 我试图添加一个自定义过滤器,但是如果使用以下代码: 但是,如果这样做,我会在Firebug中得到:“ ReferenceError:angular未定义”。 应用程序的其余部分工作正常,我在标签div中使用ng-app而不在html标签中使用ng- app,并且在https://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.

  • 编辑:我需要这样做,所以如果$gt中发送的日期是0000-00-0000:00:00,查询将返回结果中的文档。

  • 尽管标题出现了,但这并不是一个哲学问题。 从未初始化的数组读取 使用错误数据 使用不可移植构造。(即内存分配的细节1) 导致具有的行为 标准没有要求产生可预测的效果 我会称之为“未定义的行为”。但也许我错过了什么(?) null null

  • 问题内容: 我正在使用AngularJS 1.4.0和服务。以下代码将始终打印出一个空对象: 我试过了: 使用AngulerJS 1.3.15,并且在刷新浏览器时cookie不会持久存在(但至少会创建cookie)。 添加有效期。 确保在我的浏览器(Chrome)中启用了Cookie。 尝试使用普通的旧JS,但仍然无法正常工作。 我在任何地方都找不到类似的问题。 谢谢。 问题答案: 对于偶然发现此