如何在与contenteditable指令一起使用的控制器中获得ng-model正确值?

时间:2015-12-11 05:17:31

标签: javascript angularjs

我尝试过ng-change,ng-keypress,ng-keyup,ng-keydown。

ng-change ng-model值反映在控制器中但不在前端。

与其他三个值相比,一个字符小于原始值。 例如:if shareText = tag3然后它只显示标签。 我怎样才能得到正确的值,即tag3

1 个答案:

答案 0 :(得分:0)

.directive(“contenteditable”,function(){         返回{             限制:“A”,             要求:“ngModel”,             link:function(scope,element,attrs,ngModel){

            function read() {
                ngModel.$setViewValue(element.html());
            }

            ngModel.$render = function() {
                element.html(ngModel.$viewValue || "");
            };

            element.bind("blur keyup change", function() {
                scope.$apply(read);
            });
        }
    };
})

使用它的工作正常。 当我使用link:function(scope,elm,attr,ngModel){

            function updateViewValue() {
                ngModel.$setViewValue(this.innerHTML);
            }

            //Or bind it to any other events
            elm.on('keyup', updateViewValue);

            scope.$on('$destroy', function() {
                elm.off('keyup', updateViewValue);
            });

            ngModel.$render = function() {
                elm.html(ngModel.$viewValue);
            }

        }

inside die = rective link function然后ng-change没有反映在前端。