AngularJS 1.6.2 中未调用 $formatters 和 $parsers

$formatters and $parsers not called in AngularJS 1.6.2

@version angularjs 1.6.2

我正在尝试做一些格式化程序和解析器,以便为我真正庞大的项目提供通用 input/output。

用例:

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

我想要的逻辑

组件:艺术家选择
指令(解析器):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 : Note that the $parsers are not called when the bound ngModel expression changes programmatically.

还有

Angular Doc : Since ng-model does not do a deep watch, $render() is only invoked if the values of $modelValue and $viewValue are actually different from their previous values. If $modelValue or $viewValue are objects (rather than a string or number) then $render() will not be invoked if you only change a property on the objects.

如何让它发挥作用?

正在工作的笨蛋: Behavior

也许我遗漏了什么,也许我想多了,也许这根本不可能。

非常感谢您的帮助!

我发现它在我的 $doCheck() 中,我进行了一次检查,但从未如此。