2014-03-28 44 views
1

我正在使用X-Editable插件进行内联编辑angular.js 内嵌编辑工作非常完美。但是,我想为非管理员用户禁用此功能。x-editable:关闭非管理员用户的内嵌编辑

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的测试变量)。

回答

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; 
 
};