2017-10-06 192 views
1

當前,我正在使用ng-jsoneditorAngularJS JSON編輯器切換可編輯

我試圖將狀態從可編輯切換到只讀狀態。

要設置只讀屬性,我必須指定options屬性的onEditable屬性。例如:

$scope.obj = { 
      data: json, 
      options: { 
       mode: 'tree', 
       onEditable: function(){return false;} 
      } 
    }; 

我能夠得到changeOptions屬性切換mode財產,但我不能得到onEditable屬性切換。我希望用戶能夠在'code'模式下編輯json。這是我的嘗試:

$scope.changeOptions = function() { 
     $scope.obj.options.mode = $scope.obj.options.mode == 'tree' ? 'code' : 'tree'; 
     $scope.obj.options.onEditable = $scope.obj.options.onEditable == function(){return false;} ? function(){return true;} : function(){return false;}; 
    }; 

JsFiddle Example

回答

1

編輯:

並沒有完全在第一次得到你的問題,是我不好。

在你的例子中你做錯了什麼是檢查一個函數定義的變量是onEditable(),這是行不通的。

所以我所做的就是檢查模式是treecode然後分配功能的ng-jsoneditoronEditable選項。

這是更新的fiddle

PS:我也乾淨了一些代碼。

+0

哦,是嗎?你測試了演示嗎?你有沒有注意到這個演示允許你在樹模式和代碼模式下編輯?我想在樹形模式下禁用編輯功能。用例基本上是,而在樹狀模式下,編輯器只能讀取,而在代碼模式下允許用戶修改json。 –

+0

@PhiL請立即檢查。 –