سؤال

أنا أستخدم contenteditable توجيه الزاوي شبيبة.وأنا أحاول الوصول إلى قيمة a العلامة باستخدام ng-model.لكنه يعطي غير محدد.

هذا هو أتش تي أم أل بلدي حيث يمكنني استخدام التوجيه كونتنتديتابل

<span ng-switch on="editgroupChatFieldFlag" style="width: 87%;margin-right: 0;float:left;"  ng-hide="displatSessionTitleFlag==false">   
    <h5 style="float:left;margin: 7px 14px 0;margin-right: 0;">Chat Session : </h5>
    <a ng-switch-when="true" contenteditable="true" strip-br="true" ng-model="chatMessageName" style="margin-right: 0;width: 59%;margin-left: 4px;" ng-keydown="changeNameFunc($event)">{{secondPresonName}}</a>
    <a ng-switch-when="false" style="margin-right: 0;width: 59%;margin-left: 4px;">{{secondPresonName}}</a>         
</span>

وهذا التوجيه المحتوىالتحرير

app.directive('contenteditable', function() {
    return {
      restrict: 'A', // only activate on element attribute
      require: '?ngModel', // get a hold of NgModelController
      link: function(scope, element, attrs, ngModel) {
        if(!ngModel) return; // do nothing if no ng-model

        // Specify how UI should be updated
        ngModel.$render = function() {
          element.html(ngModel.$viewValue || '');
        };

        // Listen for change events to enable binding
        element.on('blur keyup change', function() {
          scope.$apply(read);
        });
        read(); // initialize
        // Write data to the model
        function read() {
          var html = element.html();
          // When we clear the content editable the browser leaves a <br> behind
          // If strip-br attribute is provided then we strip this out
          if( attrs.stripBr && html == '<br>' ) {
            html = '';
          }
          ngModel.$setViewValue(html);
        }
      }
    };
  });

يمكن لأحد أن يقول لي كيف أحصل على a قيمة العلامة باستخدام نانوغرام نموذج.

هل كانت مفيدة؟

المحلول

أنت تتعامل مع مشكلة النطاق (ng-switch يخلق نطاق الطفل).تحتاج إلى استخدام إما . أو $parent.

مثال مع $parent تحديث نانوغرام نموذج للاستخدام $parent.chatMessageName:

<a ng-switch-default contenteditable="true" 
   strip-br="true" 
   ng-model="$parent.chatMessageName" >Enter</a>

مثال مع dot/object:شبيبة

--controller
$scope.myType = {
    chatMessageName: ''
};

أتش تي أم أل:

<!-- html -->
<a ng-switch-default 
   contenteditable="true" 
   strip-br="true" 
   ng-model="myType.chatMessageName" >Enter</a>
<a>{{"Text "+ myType.chatMessageName}}</a> 

ثقف نفسك: https://github.com/angular/angular.js/wiki/Understanding-Scopes


ملاحظة جانبية:عندما تقوم بنشر سؤالك:تضمين كمان في سؤالك (وليس التعليق) وإزالة التعليمات البرمجية غير الضرورية ، وتنسيق ذلك أكثر قابلية للقراءة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top