首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >AngularJS .length返回TypeError

AngularJS .length返回TypeError
EN

Stack Overflow用户
提问于 2015-02-03 00:04:31
回答 2查看 112关注 0票数 0

我在我的过滤器中执行一项非常例行的任务来检查

代码语言:javascript
运行
AI代码解释
复制
    angular.module('someApp')
     .filter('filterSomeData',['$filter',function ($filter) {
      return function (items, keyObj) {
    var filterObj = {
      data:items,
      filteredData:[],
      applyFilter : function(query,key){
        var fData = [];
        //unfiltered data at the start
        if(this.filteredData.length === 0){
          this.filteredData = this.data;
        }
        if(query){              
          var fObj = {};         
          if(!angular.isArray(query)){
            fObj[key] = query;
            angular.forEach(fObj, function(fObj, i){
                    fData = fData.concat(
                      $filter('filter')
                      (this.filteredData,fObj));
                }, this);
            console.log(this.filteredData);
          }
          else if(angular.isArray(query)){
            console.log(query);
            if(query.length > 0){ 
              for(var i=0;i<obj.length;i++){
                if(angular.isDefined(query[i])){
                  fObj[key] = query[i];
                  angular.forEach(fObj, function(fObj, i){
                          fData = fData.concat(
                            $filter('filter')
                            (this.filteredData,fObj));
                      }, this);
                }
              }

            }                   
          }                 
          if(fData.length > 0){
            this.filteredData = fData;
          }
          else{
            this.filteredData;
          }
        }
      }
  };

  if(keyObj){
    angular.forEach(keyObj,function(query,key){
      filterObj.applyFilter(query,key);          
    });     
  }

  return filterObj.filteredData;      
}

])

但是在我的控制台中,它会触发一个错误:TypeError: Cannot read property 'length' of undefined

即使我们假设在检查时没有定义this.filteredData,我也不明白为什么.length会触发错误。

功能完全没有受到影响,但我想确保我的控制台是干净的。

有什么想法吗?

更新:深入到代码中,看起来过滤器在AJAX调用完成之前就应用了。最初,filterObj是未定义的,然后在加载数据后立即填充。是否有办法像承诺的那样,将过滤器的注入推迟到加载数据为止?

耽误您时间,实在对不起!

EN

回答 2

Stack Overflow用户

发布于 2015-02-03 00:25:09

即使我们假设在检查时没有定义this.filteredData,我也不明白为什么.length会触发错误。

如果尝试访问未定义对象的属性,则会得到此类型错误。在控制台上试一试:

代码语言:javascript
运行
AI代码解释
复制
a = {b:'four'}
a.b.length
4
a.c.length
 Uncaught TypeError: Cannot read property 'length' of undefined

因此,如果this.filteredData不存在,则无法访问length属性。

票数 1
EN

Stack Overflow用户

发布于 2015-02-03 00:07:44

我会了解为什么元素是未定义的,并且可能在If语句之前的某个地方将其声明为空对象或数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28294038

复制
相关文章
RestEasy 默认 http 返回头部没有Content-Length
没有content - length 字段 因为要对方是http长连接,需要根据长度获取包体,性能好一些。 长连接有沾包的问题,要用Content-length切割body
MickyInvQ
2020/09/27
1.2K0
RestEasy 默认 http 返回头部没有Content-Length
【AngularJS】 # AngularJS入门
ng-app 指令定义一个 AngularJS 应用程序。 若不声明,将直接显示表达式。
全栈程序员站长
2022/09/15
23.6K0
【AngularJS】 # AngularJS入门
mysql中length函数_length中文
归纳: 应用场景 1.查询字符串长度length(str) 2.查询列最大字符串长度max(length(str)) 3.查询某个字符出现几次 length(str1)-length(replace(‘str1’,’str2’,”)) 4.length求得是字符长度。 【1个中文、英文字母、数字、中文符号、英文符号、全角符号、空格都算1个字符】
全栈程序员站长
2022/08/18
2.6K0
mysql中length函数_length中文
push is not a function data.length返回undefined解决方案-Javascript学习笔记
于是我尝试使用length看能不能获取他的长度然后循环放入其他变量再赋值回去能否解决,竟然length也获取不到长度
田小檬
2023/08/24
4040
string的length方法(数组length方法)
The maximum string content length quota (8192) has been exceeded while reading XML data. This quota may be increased by changing the MaxStringContentLength property
全栈程序员站长
2022/07/25
9040
TypeError: object()
对于上面这个错误,很容易迷惑我们,因为这个错误信息没有很明确的指出,到底是哪段代码除了问题。那这个错误是怎么产生的了,请听我细细道来。
py3study
2020/01/06
1.1K0
LENGTH 和 CHAR_LENGTH 的区别
char(N) 和 varchar(N) 这里的N指的是字符长度,而不是字节长度。就是说可以插入N个字符的长度的内容(不管插入的是英文还是中文,反正是按照长度算的)。
保持热爱奔赴山海
2019/09/18
1.1K0
Python报错TypeError: '<' not supported between instances of 'str' and 'int'
分析:input()返回的数据类型是str,不能直接和整数进行比较,必须先把str换成整数,使用int()方法
BH8ANK
2021/01/28
5K0
【AngularJS】—— 1 初识AngularJs
怀着激动与忐忑的心情,开始了学习AngularJS的旅程,很久之前就听说了这个前端框架,但是由于自己一直没有从事相关的工作,因此也没有进行学习。这次正好学习AngularJS,直接复习一下前端的知识。目前这里还是弱点,慢慢深入的学习。   AngularJS是Google的优秀的前端框架,目前已经应用于多个产品。   通过w3cschool.cc的学习,简单的了解了下它的使用方法,但是对于原理还没有理解。   AngularJs相对于其他的框架来说,有一下的特性:   1 MVVM   2 模块化
用户1154259
2018/01/17
2.8K0
关于Java中length、length()、size()的区别
@return the length of the sequence of characters represented by this object.
全栈程序员站长
2022/07/01
1.1K0
SQL函数 LENGTH
LENGTH 返回一个整数,表示给定字符串表达式的字符数,而不是字节数。字符串表达式可以是字符串(从中删除尾随空格)或数字( IRIS 将其转换为规范形式)。
用户7741497
2022/04/08
2K0
【AngularJS】—— 2 初识AngularJs(续)
前一篇了解了AngularJS的一些简单的使用,这里继续跟着w3c学习一下剩下的内容。   本篇根据w3cschool.cc继续学习AngularJS剩余的内容,包括:   1 事件   2 模块   3 表单   4 数据验证   5 bootstrap CSS风格   6 include包含其他页面   7 应用程序   8 参考手册   首先看一下html的事件   关于html的事件,文中给出了三个例子,点击、隐藏、显示。使用方法基本相同:   先看一下点击的例子,点击按钮后,会触发ng-clic
用户1154259
2018/01/17
2.3K0
python:TypeError: mu
 今天遇到这个错误: Traceback (most recent call last):   File "t2.py", line 14, in <module>     print Derived().meth()   File "t2.py", line 10, in meth     super(Derived,self).meth() TypeError: must be type, not classobj 试验代码如下: class Base():     def meth(self):   
py3study
2020/01/07
6170
JavaScript对象length
前几日有在Javascript数组操作一文中稍提及了数组的length属性;深入一点探究,就发现JS这length确有许多难为所知的特性。这就边学边探究下这朵奇葩属性;这里边深入边记载。 可变的数组length属性 和其他大多数语言不同的是,JavaScript数组的length属性是可变的,这一点需要特别注意。当length属性被设置得更大时,整个数组的状态事实上不会发生变化,仅仅是length属性变大;当length属性被设置得比原来小时,则原先数组中索引大于或等于length的元素的值全部被丢失。下面
晚晴幽草轩轩主
2018/03/27
2.6K0
SQL函数 $LENGTH
$LENGTH 返回指定字符串中的字符数或指定字符串中的子字符串数,具体取决于使用的参数。
用户7741497
2022/03/25
1.8K0
Length of Last Word
1. Description 2. Solution class Solution { public: int lengthOfLastWord(string s) { int
Tyan
2019/05/25
1K0
Length of Last Word
问题:最后一个单词的长度 分析,注意s=" a  b  "这种情况,从后遍历单词,遇到空格退出 class Solution { public: int lengthOfLastWord(const char *s) { int len=strlen(s); int sum=0; while(s[len-1]==' ') len--; for(int i=len-1;i>=0;i--) { if(
用户1624346
2018/04/17
1.2K0
TypeError: Network request failed
在使用react-native 进行网络请求时,报了这样的一个错误TypeError: Network request failed, 在检查自己代码没有错误的情况下,去设置一个xCode便可以走通,
杭州前端工程师
2018/06/15
3.3K0
点击加载更多

相似问题

Angularjs http get请求返回'length‘错误

20

返回“TypeError: cannot read property length from NULL”的脚本

291

TypeError: A不是对象。(计算'"length"in a')

11

TypeError:'Length‘对象不可迭代

10

AngularJS - ui.calendar TypeError:无法读取未定义的属性“length”

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档