Javascript angularjs数据未添加到服务中
我正在使用angularjs和ajax。我想从webservice传递给控制器的数据。为了将值传递给控制器,我使用holder(它是工厂方法或服务)。它在没有Web服务的情况下工作。但是,当我从web调用数据时,数据是正确的,但不会更新到holder。我的代码如下。单击按钮“数据1”时。我想以按钮名data2打印来自webservice的数据。它没有显示任何错误。并成功地将数据显示在控制台中,但不向支架添加数据 index.htmlJavascript angularjs数据未添加到服务中,javascript,angularjs,web-services,Javascript,Angularjs,Web Services,我正在使用angularjs和ajax。我想从webservice传递给控制器的数据。为了将值传递给控制器,我使用holder(它是工厂方法或服务)。它在没有Web服务的情况下工作。但是,当我从web调用数据时,数据是正确的,但不会更新到holder。我的代码如下。单击按钮“数据1”时。我想以按钮名data2打印来自webservice的数据。它没有显示任何错误。并成功地将数据显示在控制台中,但不向支架添加数据 index.html <!DOCTYPE html> <html
<!DOCTYPE html>
<html ng-app="sharing">
<head>
<script data-require="angular.js@1.5.6" data-semver="1.5.6" src="https://code.angularjs.org/1.5.6/angular.min.js"></script>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<script src="script.js"></script>
</head>
<body>
<div ng-controller="ChildCtrl">
<button ng-click="increment() name="data1">+</button>{{Holder.value}}
</div>
<div ng-controller="ChildCtrl2">
<h2>Second controller</h2>
<button ng-click="increment() name="data2">+</button>{{Holder.value}}
<button ng-click="" name="data3">+</button>{{Holder.name}}
</div>
</body>
</html>
如果您使用的是angularjs,请避免使用jQuery代码,请删除$.ajax并使用
$http
或$resource
其angularjs内置提供程序
更多细节。
$http
$resource我在使用angularjs Web服务而不是ajax Web服务时得到了答案 script.js
// Code goes here
var app = angular.module('sharing', []);
var root="http://xxx.xxx.x.xx:60/Api";
app.factory('Holder', function() {
return {
value: 0,
name:""
};
});
app.controller('ChildCtrl', function($scope, Holder) {
$scope.Holder = Holder;
$scope.increment = function() {
$scope.Holder.value++;
var jData1 = {};
jData1.BDMeetingId ="10003/2017";
var k=null;
console.log(JSON.stringify(jData1));
$.ajax({
type: "POST",
async: true,
url: root+"/Boardmeeting/BoardmeetingDetailsSevice",
data: JSON.stringify(jData1),
contentType: "text/plain",
dataType: "json",
crossDomain: true,
success: function (msg) {
k=msg;
$scope.BMNo=k.BMNo;
console.log(msg);
$scope.Holder.name=$scope.BMNo;
},
error: function (jqXHR, textStatus, errorThrown) {
},
});
};
});
app.controller('ChildCtrl2', function($scope, Holder) {
$scope.Holder = Holder;
$scope.increment = function() {
$scope.Holder.value++;
};
});
var app = angular.module('sharing', []);
var root="http://xxx.xxx.x.xx:60/Api";
app.factory('Holder', function() {
return {
value: 0,
name:""
};
});
app.controller('ChildCtrl', function($scope, Holder, $http) {
$scope.Holder = Holder;
$scope.increment = function() {
$scope.Holder.value++;
var jData1 = {};
jData1.BDMeetingId ="10003/2017";
console.log(JSON.stringify(jData1));
$http({
method: 'POST',
url: root+"/Boardmeeting/BoardmeetingDetailsSevice",
headers: {
'Content-Type': 'text/plain', /*or whatever type is relevant */
'Accept': 'application/json' /* ditto */
},
data: JSON.stringify(jData1)
}).then(function(response) {
console.log(response);
var k=response;
$scope.BMNo=k.BMNo;
console.log(response.data.BMNo);
$scope.Holder.name=response.data.BMNo;
},
function(response) { // optional
// failed
});
};
});
app.controller('ChildCtrl2', function($scope, Holder) {
$scope.Holder = Holder;
$scope.increment = function() {
$scope.Holder.value++;
};
});