您的指令中的问题是,在对表达式进行求值之前,角度会触发一次手表。因此,第一次值是undefined
。我不认为这是可以预防的,但是AngularJS是如何工作的。
我val
在渲染函数中添加了一个参数,以显示实际监视的值(记录到控制台-参见底部的小提琴)。在ngModelController
初始化$modelValue
为NaN,这就是为什么NaN
传递给函数代替undefined
。
但是由于makeHtml
函数似乎期望使用字符串,因此一个简单的解决方法是,如果该值是伪造的,则将一个空字符串传递给它(将其转换为字符串可能更好)。
var htmlText = converter.makeHtml(model.$modelValue || '');