model$ modelValue在指令中为NaN

【字号: 日期:2024-04-11浏览:40作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决model$ modelValue在指令中为NaN?

您的指令中的问题是,在对表达式进行求值之前,角度会触发一次手表。因此,第一次值是undefined。我不认为这是可以预防的,但是AngularJS是如何工作的。

我val在渲染函数中添加了一个参数,以显示实际监视的值(记录到控制台-参见底部的小提琴)。在ngModelController初始化$modelValue为NaN,这就是为什么NaN传递给函数代替undefined。

但是由于makeHtml函数似乎期望使用字符串,因此一个简单的解决方法是,如果该值是伪造的,则将一个空字符串传递给它(将其转换为字符串可能更好)。

var htmlText = converter.makeHtml(model.$modelValue || ’’);

更新小提琴。

解决方法

看到这个jsfiddle:http ://jsfiddle.net/8bENp/66/

如果您查看JavaScript控制台,将会看到以下内容:

TypeError: Object NaN has no method ’replace’ at makeHtml (https://raw.github.com/coreyti/showdown/master/compressed/showdown.js:62:705) at render (http://fiddle.jshell.net/_display/:50:42) at link (http://fiddle.jshell.net/_display/:54:13) at k (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js:42:321) at e (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js:38:198) at k (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js:42:261) at e (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js:38:198) at https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js:37:332 at https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js:15:440 at Object.e.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js:85:416) <markdown ng-model='someCode' class='ng-pristine ng-valid'> angular.min.js:60

问题是,model.$modelValue是NaN当它的类型甚至不应该是一个数字。尽管如此,降价渲染。我可以添加一张typeofmodel.$modelValue == ’string’支票,但我宁愿治疗根本原因。任何想法?

相关文章: