x-editable:关闭非管理员用户的内联编辑

时间:2014-03-28 20:25:38

标签: javascript php jquery angularjs x-editable

我正在使用X-Editable插件进行angular.js的内联编辑 在线编辑工作得很完美。但是,我想为非管理员用户禁用此功能。

HTML:

<div ng-controller="OnaftersaveCtrl">
   <a href="#" editable-text="user.name" onaftersave="updateUser()">
   {{ user.name || 'empty' }}
   </a>
</div>

JS:

var app = angular.module("app", ["xeditable"]);
app.run(function(editableOptions) {
  editableOptions.theme = 'bs3'; // bootstrap3 theme. Can be also 'bs2', 'default'
});

app.controller('OnaftersaveCtrl', function($scope, $http) {
$scope.user = {
  id: 1,
  name: '<?=$test?>'
};

$scope.updateUser = function() {
    $http({
        method: 'post',
        url: '/test',
        data: $scope.user,
        headers: {'Content-Type': 'application/x-www-form-urlencoded'},
      }).
      success(function(response) {
          alert(response);
      }).
      error(function(response) {
          alert("not ok");
      });
      return false;
    };

});

我试图将html代码放入id。

$('#myselector').editable('option', 'disabled', true);

但是,它没有呈现初始值。 (这里是来自php的测试变量)。

1 个答案:

答案 0 :(得分:0)

我需要具有相同的功能,我在https://github.com/vitalets/angular-xeditable/pull/206上发现了一些问题,但是没有修复它们。我必须完成我的任务,所以我选择用另一个具有可编辑的atributs的元素替换元素。

<i>
<span ng-if="accounts.editOptions.isEditable" editable-text="account.clientCompanyXMLEntity.industry" ng-bind="account.clientCompanyXMLEntity.industry || 'add industry'"></span> 
<span ng-if="!accounts.editOptions.isEditable" ng-bind="account.clientCompanyXMLEntity.industry || 'add industry'"></span>
</i>
在我的控制器中,我有:

$scope.accounts.editOptions.isEditable = false;
$scope.accounts.editOptions.toggleEditability = function() {
    $scope.accounts.editOptions.isEditable = !$scope.accounts.editOptions.isEditable;
};