我正在使用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的测试变量)。
答案 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;
};