0

私のコードは次のとおりです。

<!doctype html>
<html ng-app="flyerGen">
<head>
<script src="http://code.angularjs.org/1.0.5/angular.min.js"></script>
<script>
angular.module('flyerGen', []).directive('contenteditable', function() {
    return {
        require: 'ngModel',
        link: function(scope, elm, attrs, ctrl) {
            // view -> model
            elm.bind('keyup', function() {
                scope.$apply(function() {
                    ctrl.$setViewValue(elm.html());
                });
            });

            // model -> view
            ctrl.$render = function() {
                elm.html(ctrl.$viewValue);
            };

            // load init value from DOM
            ctrl.$setViewValue(elm.html());
        }
    };
});
function FlyerCtrl($scope) {
    $scope.Flyer = { bgColor : '231,233,230', title : 'WIE WAREN WIR HEUTE?', description: 'Bitte scannen Sie den QR-Code und geben Sie uns Feedback' }
}

</script>
</head>
<Body>
<div contentEditable ng-model="Flyer.title">{{ Flyer.title }}</div>
Test: {{ Flyer.title }}
</div>
</Body>
</html>

ページをロードすると、コンソールに次のエラーが表示されます: Error: No controller: ngModel。「ngModel」の代わりに「FlyerCtrl」、「Flyer」も設定しようとしましたが、何も機能しません。

間違いはどこですか?

4

1 に答える 1

3

いくつかの項目:

  • HTMLはすべきではありcontenteditableませんでしたcontentEditable
  • DOM から init 値をロードしないでください -- モデルにすでにあるので、HTML からこれを削除します: <div...> {{ Flyer.title }} </div> と $setViewValue を呼び出さないでください最初に。

プランカー

于 2013-03-15T20:35:35.620 に答える