当我编写手表处理函数时,我会在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,但仍然无法正常工作。 我在任何地方都找不到类似的问题。 谢谢。 问题答案: 对于偶然发现此