angularjs – ngModel $modelValue和ngModel之间有什么区别$viewValue

前端之家收集整理的这篇文章主要介绍了angularjs – ngModel $modelValue和ngModel之间有什么区别$viewValue前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下ckEditor指令。下面是从示例中看到的如何在编辑器中设置数据的两个变体:
app.directive('ckEditor',[function () {
    return {
        require: '?ngModel',link: function ($scope,elm,attr,ngModel) {

            var ck = null;
            var config = attr.editorSize;
            if (config == 'wide') {
                ck = CKEDITOR.replace(elm[0],{ customConfig: 'config-wide.js' });
            } else {
                ck = CKEDITOR.replace(elm[0],{ customConfig: 'config-narrow.js' });
            }


            function updateModel() {
                $scope.$apply(function () {
                    ngModel.$setViewValue(ck.getData());
                });
            }

            $scope.$on('modalObjectSet',function (e,modalData) {
                // force a call to render
                ngModel.$render();
            });

            ck.on('change',updateModel);
            ck.on('mode',updateModel);
            ck.on('key',updateModel);
            ck.on('dataReady',updateModel);

            ck.on('instanceReady',function () {
                ngModel.$render();
            });

            ck.on('insertElement',function () {
                setTimeout(function () {
                    $scope.$apply(function () {
                        ngModel.$setViewValue(ck.getData());
                    });
                },1000);
            });

            ngModel.$render = function (value) {
                ck.setData(ngModel.$modelValue);
            };

            ngModel.$render = function (value) {
                ck.setData(ngModel.$viewValue);
            };
        }
    };
}])

有人可以告诉我有什么区别:

ck.setData(ngModel.$modelValue);
ck.setData(ngModel.$viewValue);

和我应该使用。我看了角度文档,它说:

$viewValue

Actual string value in the view.

$modelValue

The value in the model,that the control is bound to.

我不知道作者的意思,当他在文档中写这个:-(

你正在看正确的文档,但它可能只是你有点困惑。 $ modelValue和$ viewValue有一个明显的区别。正是这样:

如上所述:

$viewValue: Actual string (or Object) value in the view.
$modelValue: The value in the model,that the control is bound to.

我要假设你的ngModel是指元件…?所以你的有一个字符串值显示用户,对不对?但实际的模型可能是该字符串的某个其他版本。例如,输入可能显示字符串’200’,但是 (例如)实际上将包含200的模型值作为整数。因此,在中“查看”的字符串表示是ngModel。$ viewValue,数字表示将是ngModel。$ modelValue。

另一个示例是其中$ viewValue将类似于2000年1月1日,$ modelValue将是表示该日期字符串的实际的JavaScript Date对象。那有意义吗?

我希望回答你的问题。

猜你在找的Angularjs相关文章