KendoUI数字框未正确设置ngModel

时间:2014-03-14 12:09:25

标签: angularjs kendo-ui angular-ngmodel kendonumerictextbox

如果我初始化附有ngModel的输入框,如下所示:

angular.element(element.find("input")).kendoNumericTextBox({
  decimals : 4,
  format : "#.####"), // to match step and format
  step : step,
  value : value,
  min : scope.min,
  max : scope.max
});

现在,我输入值:

3.33333333

在其中并显示:

3.3333

但ngModel仍设为3.33333333

这是一个Kendo-AngularJS错误吗?

2 个答案:

答案 0 :(得分:0)

这似乎是有效的行为。我向kendo-labs报告了问题:

https://github.com/kendo-labs/angular-kendo/issues/240#issuecomment-37793471

答案 1 :(得分:0)

我做了这个解决方法(我有一个范围变量模型:“= ngModel”):

scope.$watch("model", function(newValue, oldValue) {
 if (newValue !== undefined) {
   kendoNumericBox.data("kendoNumericTextBox").value(newValue);
   scope.model = kendoNumericBox.data("kendoNumericTextBox").value()
 }
});

虽然这样说,但是如果你从控制器更新ngModel它还有一个问题,它在输入中没有反映出来,直到你点击它为止我也这样做了:

 scope.model = kendoNumericBox.data("kendoNumericTextBox").value();

再次检索值,以便使用kendoNumericTextBox进行验证。

其中kendoNumericBox是kendoNumericTextBox构造函数的返回值:

kendoNumericBox = elemenet.kendoNumericTextBox({. . .