开发者问题收集

从 AngularJS $Filter 获取“无法读取未定义的属性‘slice’”

2017-11-05
40

我正在使用 AngularJS。我正在使用过滤器为显示数据的表格创建分页。当所有内容都已加载时,过滤器工作正常,但最初,它无法读取未定义的“切片”。我猜它在有适当的数据可供使用之前就运​​行了。我的问题是。我应该把它放在哪里?现在它位于我的控制器文件的底部。它应该放在单独的文件中吗?如果是这样,我该如何使用它?

代码

    app.filter('startFrom', function () {
    return function (input, start) {
        start = + parseInt(start);
        return input.slice(start);
    }
});
1个回答

我认为您可以在控制器开始时初始化变量。

或者更好的是,您可以在进行切片之前检查 input 是否存在。像这样:

app.filter('startFrom', function() {
    return function(input, start) {
        if (!input || !input.length) { return; }
        start = +start;
        return input.slice(start);
    }
});

希望对您有所帮助。

WilsonPena
2017-11-05