2013-11-20 57 views
2

我使用NG-電網從AngularJS UI,使一格,並希望有使用jQuery日期選擇器日期單元編輯單元編輯。
的問題是,日期選擇器彈出窗口時,彈出式內的任何點擊(是否選擇日期或更改月份),模糊了NG-電網輸入字段,並出現JS錯誤「未捕獲缺少實例數據,此日期選擇」。AngularJS ngGrid問題,當使用jQuery日期選擇器

下面的代碼片段。
任何幫助表示讚賞。謝謝 !

=== HTML

<div ng-controller="MyCtrl1"> 
    <div class="gridStyle" ng-grid="gridOptions" ng-show="visible"></div> 
    </div> 

該小區===網格選項在控制器

{ 
    field: 'loanEndDate', 
    displayName: 'Loan End', 
    enableCellEdit: true, 
    editableCellTemplate: '<input type="text" datepicker ng-model="$parent.currentDate" ng-input="COL_FIELD" />' 
    } 

=== ANGULAR JS DIRECTIVE

directive('datepicker', function() { 
return { 
    restrict: 'A', 
    require: '?ngModel', 
    scope: {}, 
    link: function(scope, element, attrs, ngModel) { 
     if (!ngModel) return; 

     var optionsObj = {}; 

     optionsObj.dateFormat = 'dd/mm/yy'; 
     var updateModel = function(date) { 
      scope.$apply(function() { 
       ngModel.$setViewValue(date); 
      }); 
     }; 

     optionsObj.onSelect = function(date, picker) { 
      updateModel(date); 
     }; 

     ngModel.$render = function() { 
      element.datepicker('setDate', ngModel.$viewValue || ''); 
     }; 
     element.datepicker(optionsObj); 
    } 
}; 
}); 

回答

1

我認爲我有一個非常類似的問題,可以在這裏找到答案:https://stackoverflow.com/a/20813720/3087367

的本質是,你自己的模板應該好好溝通,通過偵聽通過關注你的編輯元素ngGridEventStartCellEdit事件NG-電網,以及最重要的是:你的組件時,細胞失去重點必須發出ngGridEventEndCellEdit事件(或當你想讓編輯器消失時,比如可能在按下Enter鍵或其他東西時)。

希望這可以幫助您解決您的問題。