角度过滤器有效,但将输入视为未定义并引发错误

cpk

尽管遇到以下错误,但我编写的过滤器似乎运行良好。

TypeError: Cannot read property 'replaceAll' of undefined

过滤器将错误的相对URL替换为绝对URL。这是过滤器和标记。

//located elsewhere
String.prototype.replaceAll = function(s,r){
    return this.split(s).join(r);
}
//located elsewhere
var imgBase = '<img src="http://discourse.mysite.com';

app.filter('prependImg_topic', function(){
  return function(cooked) {
    return cooked.replaceAll('<img src="//discourse.mysite.com', imgBase);
  }
})

标记:

<div class="topic-post-body" ng-bind-html="topic.post_stream.posts[0].cooked | prependImg_topic "></div> "

我有一个倾向,$sce因为我要在中输入数据ng-bind-html如果我像这样打印值:{{topic.post_stream.posts[0].cooked}},它就存在,所以我知道它不是未定义的。此外,过滤器可以正常工作并正确写入网址。去搞清楚。

我可以提供任何其他需要帮助的详细信息。谢谢。

编辑:可能有帮助的另一个奇怪之处是,ng-repeat此过滤器内部有效,并且不会引发任何错误。令人毛骨悚然的东西!

<div class="post" ng-repeat="post in posts" ng-if="$index > 0">
     <div class="topic-post-body" ng-bind-html="post.cooked | prependImg_topic"></div>
</div>
cz

我猜数据是异步加载的,如果是这种情况,也难怪过滤器会因为尝试对(尚)不存在的数据进行操作而引发错误。您所做的检查{{ topic ... }}不会证明任何内容,因为如果最终会出现数据,则它将打印数据(最好用进行检查console.log)。内部过滤器ng-repeat不引发任何错误的原因是,ng-repeat仅当有任何数据要迭代时,该过滤器才起作用,这意味着当内部过滤器ng-repeat运行时,数据已经存在。这就是为什么您应该始终以使过滤器可以处理undefinednull值而不抛出的方式构造过滤器的原因

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

角度过滤器返回html

来自分类Dev

子属性的角度过滤器

来自分类Dev

tablesorter过滤器插件引发错误“无法读取未定义的属性'$ table'

来自分类Dev

角度过滤器groupby过滤器返回“未定义”字段

来自分类Dev

网页引发错误“ <功能>未定义”。

来自分类Dev

角度过滤器有效,但将输入视为未定义并引发错误

来自分类Dev

Angular中具有未定义值的自定义过滤器

来自分类Dev

角度过滤器+打字稿

来自分类Dev

在Angular模板中,如果未定义变量,是否有引发错误的方法?

来自分类Dev

使角度过滤器成为条件

来自分类Dev

角度2:{{object}}有效,{{object.child}}引发错误

来自分类Dev

角度过滤器具有多种属性

来自分类Dev

获取未定义的错误嵌套JavaScript过滤器属性'filter'

来自分类Dev

用户appRoleAssignments与过滤器resourceid eq引发错误

来自分类Dev

多个角度过滤器

来自分类Dev

角度过滤器返回html

来自分类Dev

子属性的角度过滤器

来自分类Dev

在角度过滤器中使用自定义过滤器,指令和http GET请求?

来自分类Dev

角度过滤器问题

来自分类Dev

角度ng-repeat和过滤器错误(1.1.5版有效,1.2.15有错误)

来自分类Dev

带有复选框的角度过滤器

来自分类Dev

角度过滤器完全匹配

来自分类Dev

基于角度变量的角度过滤器

来自分类Dev

“ $未定义”错误,但该功能有效

来自分类Dev

带开关的角度过滤器列表(角度材料)?

来自分类Dev

错误类型错误:无法读取未定义的属性“过滤器”

来自分类Dev

Vue 全局过滤器抛出值未定义的错误

来自分类Dev

AngularJs 中的角度过滤器

来自分类Dev

未捕获(承诺)类型错误:无法读取未定义的属性“过滤器”

Related 相关文章

热门标签

归档