我的目标是使用数字十进制2管道过滤ngModel值,这是无法从cshtml中获得的
我使用下面的博客示例创建自定义指令: https://blog.krusen.dk/angularjs-decimals-browsers/
我遇到错误:
[SFC错误]无法设置未定义的属性'$ render'
我不想检查NgModel未定义,因为它总是应该存在,但是为什么我在指令中得到ngModel未定义
app.directive("decimals", function ($filter) {
return {
restrict: "A", // Only usable as an attribute of another HTML element
require: "?ngModel",
scope: {
decimals: "@",
decimalPoint: "@"
},
link: function (scope, element, attr, ngModel) {
var decimalCount = parseInt(scope.decimals) || 2;
var decimalPoint = scope.decimalPoint || ".";
// Run when the model is first rendered and when the model is changed from code
ngModel.$render = function() {
if (ngModel.$modelValue != null && ngModel.$modelValue >= 0) {
if (typeof decimalCount === "number") {
element.val(ngModel.$modelValue.toFixed(decimalCount).toString().replace(".", ","));
} else {
element.val(ngModel.$modelValue.toString().replace(".", ","));
}
}
}