【问题标题】:$formatters and $parsers not called in AngularJS 1.6.2 [closed]AngularJS 1.6.2 中未调用 $formatters 和 $parsers [关闭]
【发布时间】:2017-08-24 11:35:00
【问题描述】:

@version angularjs 1.6.2

我正在尝试使用一些格式化程序和解析器来为我真正庞大的项目提供通用输入/输出。

用例:

我有一个需要 ngModelController 的自定义组件,但是当我在视图中使用该组件时,它带有属性指令;这也需要 ngModel 添加 $parser 或 $formatters;但是当值变为组件时,不会调用 $formatters 或 $parsers 分配给它的组件。

我想要的逻辑

组件:ArtistSelect
指令(解析器):ngObject ng-object-formatter="attribute_object" ng-object-parser="attribute_object" 查看:

<artist-select ng-model="model.artist" ng-object ng-object-formatter="id_artist"></artist-select>

我希望将 model.artist 格式化为:{id_artist: integer} 而不仅仅是一个整数。

Angular doc : 请注意,$parsers 在绑定时不会被调用 ngModel 表达式以编程方式更改。

还有

Angular Doc:由于 ng-model 不做深度观察,$render() 仅在以下情况下被调用 $modelValue 和 $viewValue 的值实际上不同于 他们以前的值。如果 $modelValue 或 $viewValue 是对象 (而不是字符串或数字)然后 $render() 将不会被调用,如果 您只需更改对象的属性。

如何使它工作?

工作插销员: Behavior

也许我错过了一些东西,也许我想太多了,或者这只是不可能做到的。

您的帮助将不胜感激!

【问题讨论】:

  • 实现和一个简单的演示会很有用。目前,很难说问题出在哪里。
  • 添加一个插件
  • Plunker 添加了在其中实现 ui-select 的一些问题

标签: angularjs angularjs-directive angularjs-ng-model angularjs-components angularjs-1.6


【解决方案1】:

我发现它在我的 $doCheck() 中,我做了一个检查,但从来都不是真的。

【讨论】:

    猜你喜欢
    • 2017-07-28
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 2013-03-29
    相关资源
    最近更新 更多