现在,我正在使用angular-xeditable。我想将编辑数据发送到服务器。
<div ng-controller="Ctrl">
<a href="#" id='username' editable-text="user.name">{{ user.name || "empty" }}</a>
</div>
和js代码是
<script type="text/javascript">
var app = angular.module("app", ["xeditable"]);
app.controller('Ctrl', function($scope,$http) {
$scope.user = {
name: 'awesome user'
};
$http.post("<?php echo base_url(); ?>index.php/welcome/test", {"name":name})
.success(function(data, status, headers, config) {
$scope.data = data;
})
.error(function(data, status, headers, config) {
$scope.status = status;
});
});
</script>
我收到名称变量是空值。 这段代码不起作用。我找不到错误。
答案 0 :(得分:3)
您需要调用在onaftersave
事件上发布到服务器的代码,该事件在此处记录:http://vitalets.github.io/angular-xeditable/#onaftersave
在模型上设置输入框中的更改后调用此事件。
在HTML中,将函数调用放在onaftersave
属性中,如下所示:
<div ng-controller="Ctrl">
<a href="#" id='username' onaftersave='postName()' editable-text="user.name">{{ user.name || "empty" }}</a>
</div>
在您的控制器中创建postName函数,该函数实际将数据发布到服务器。你的代码看起来像这样:
<script type="text/javascript">
var app = angular.module("app", ["xeditable"]);
app.controller('Ctrl', function ($scope, $http) {
$scope.user = {
name: 'awesome user'
};
// Called on the onaftersave event of xeditable
$scope.postName = function () {
$http.post("<?php echo base_url(); ?>index.php/welcome/test", {"name": $scope.user.name})
.success(function (data, status, headers, config) {
$scope.data = data;
})
.error(function (data, status, headers, config) {
$scope.status = status;
});
}
});
</script>