我想創建一個可編輯的網格,其中有一個可編輯的dateField。只有當細胞被聚焦Bootstrap Datepicker與角JS問題(再次)
$scope.gridOptions = {
data: 'result',
enableCellSelection: true,
enableRowSelection: false,
enableCellEditOnFocus: true,
multiSelect: false,
columnDefs: [
{ field: 'name', displayName: 'Name', enableCellEdit: false, width: 60 },
{ field: 'age', displayName: 'Age', enableCellEdit: false, width: 60 },
{ field: 'sex', displayName: 'Sex', enableCellEdit: false, width: 90 },
{ field: 'dob', displayName: 'DOB', width: 150,
editableCellTemplate: '<input type="text" datepicker-popup="dd/MM/yyyy" is-open="true" ng-input="COL_FIELD" ng-model="COL_FIELD" datepicker-append-to-body=true />',
}
]
};
在editableCellTemplate
,如果我不使用is-open="true"
,然後彈出不來的細胞將顯示爲可編輯的。如果我不使用ng-input="COL_FIELD"
,則焦點不會從任何單元格中移除。所以,datepicker沒有隱藏起來。但是如果我使用了兩個,那麼值就沒有被選中。在控制檯中的錯誤說Expression 'true' used with directive 'datepickerPopup' is non-assignable!
有關於此stackoverflow很多問題。我嘗試了幾乎所有,但沒有成功。
可以做些什麼?我怎樣才能刪除錯誤?請給我提供一個工作的重擊者。我無法與重擊者一起創建這個問題。
編輯
我想,我不能消除這種誤差。錯誤還是一樣
Expression 'true' used with directive 'datepickerPopup' is non-assignable!
我怎麼能刪除嗎?刪除它後,我相信它會起作用。我試着把它作爲一個範圍變量並引用它,但是當我使用Inspect元素檢查它時,值並沒有被替換爲true。如果我使用它作爲變量並連接像'is-open="' + $scope.dateFormat.opened + '"'
這樣的模板中的值,仍然存在相同的錯誤。
編輯2
這是什麼is-open
用於?在某處我看到它的價值等值於true
,某處只是opened
。在here in Stackoverflow其中的一個例子中,它只是opened1
和opened2
。這是什麼?以及如何使用這個?
我已刪除使用bcombs
技術
編輯3
進一步經過調試錯誤,我發現,日期選擇器是越來越打開(如果我使用由bcombs
提及的方法),但是,它一旦開放就會關閉。
$scope.$on('ngGridEventStartCellEdit', function() {
debugger;
});
編輯4 從多個操縱我得出的結論是 如果使用ng-input
,那麼它打破了2路結合。即如果您更改日期值文本字段,則在datePicker中它會被反映出來,但是如果您嘗試使用datePicker更改該值,它將不會反映在textField中。
如果您刪除ng-input
,這2種方式綁定,保持正確,所以它的工作原理,但這會導致ngGridEventEndCellEdit
事件不被觸發。所以,重點不會迷失。值越來越選擇,datePicker越來越關閉(如果改爲enableCellEditOnFocus:true
,我使用enableCellEdit:true
),但焦點仍然在textField上..
需要幫助。希望更新有助於解決問題
那麼你是說當你複製只是你認爲是一個笨拙的問題的代碼段,這個問題不顯示?如果是這樣的話,那麼問題就出現在你的代碼的其他地方。 – JoseM 2014-09-02 12:58:34
@JoseM不,我的代碼甚至沒有工作,我甚至沒有得到同樣的東西在我的本地 – 2014-09-02 13:50:18
@VivekVardhan你能提供一個plnkr作爲基礎嗎? – 2014-09-04 07:47:00