2016-04-19 15 views
2

私は指示文を作成しました。これにより、ユーザは単語 をクリックしてテキストボックス内で編集し、いつでもどこでもクリックして戻すべきです編集した単語に本文をクリックして機能を実行してください:指示文

HTML

<div markdown>bineesh</div> 

JS指令

app.directive('markdown',function() { 

/*var htmlText='<textarea cols="20" rows="10" ng-show="isEditMode" ng-dblclick="previewSwitch()" ng-model="markdown"></textarea>';*/ 
var htmlText='<input type="text" class="form-control" ng-hide="isEditMode" ng-dblclick="backToTextarea()" ng-model="markdown"/>'; 
var newHtml='<div ng-click="previewSwitch()" ng-show="isEditMode" >{{markdown}}</div>' 
var dir={ 
    restrict:'A', 
    compile:function (tElement,tAttrs,transclude) { 
     var markdown=tElement.text(); 

     tElement.html(htmlText); 
     tElement.append(newHtml); 

     return function (scope,element,attrs) { 
      scope.isEditMode=true; 
      scope.markdown=markdown; 

      scope.previewSwitch=function() { 
       scope.isEditMode=false; 
      } 
      scope.backToTextarea=function() { 
       scope.isEditMode=true; 
      } 
     }; 


    } 
    } 
    return dir; 
}); 

私は新しい午前として、何かがディレクティブに追加する必要があるが、私はきちんとそれに入るわけではないことを知っています角に合わせて

答えて

3
angular.element(document).on('click', function() { 
    scope.isEditMode = false; 
}); 

element.on('click', function(e) { 
    e.stopPropagation(); 
    return false; 
}); 
+0

yeah this s何も問題はありませんが、編集するテキストボックスをクリックすると、元の状態になります。なぜなら、ng-dblclickを追加しても1回のクリックで閉じてしまうからです。 – Abhishek

+0

最も簡単な解決策は、マークダウンのクリックをキャッチし、コールバック –

+0

申し訳ありませんが、詳細については私が説明してくれました。私は角度が新しいです。 – Abhishek

関連する問題