Javascript 数据解析在angularjs中不起作用
我曾尝试将JSON数据解析到angular js应用程序,但解析在我的wamp服务器上不起作用。 当我单击登录页面上的提交按钮时,没有响应。请告知我的代码哪里出错了 Controller.js:Javascript 数据解析在angularjs中不起作用,javascript,angularjs,json,html,twitter-bootstrap-3,Javascript,Angularjs,Json,Html,Twitter Bootstrap 3,我曾尝试将JSON数据解析到angular js应用程序,但解析在我的wamp服务器上不起作用。 当我单击登录页面上的提交按钮时,没有响应。请告知我的代码哪里出错了 Controller.js: var app = angular.module("empApp", []); app.controller("emp", ['$scope', 'empService', function($scope, empService){ $scope.doSearch = function(){
var app = angular.module("empApp", []);
app.controller("emp", ['$scope', 'empService', function($scope, empService){
$scope.doSearch = function(){
empService.findEmployeeById($scope.searchEmpno, function(r){
$scope.empno = r.empno;
$scope.ename = r.ename;
$scope.edept = r.edept;
$scope.esal = r.esal;
});
};
}]);
app.service("empService", ['$http', '$log', function($http, $log){
this.findEmployeeById = function(empno, cb){
$http({
url: 'http://localhost/',
method: 'GET'
})
.then(function(resp){
cb(resp.data);
}, function(resp){
$log.error('Error occurred');
});
};
}
}]);
app.directive('empDetails', function(){
return {
templateUrl: 'emp-details.html'
}
});
{
"employee":{ "empno": 251, "name":"John", "age":30, "edept":"New York" }
}
HTML
<body ng-app="empApp">
<div class="container-fluid">
<div ng-controller="emp">
<form class="form-inline">
<div class="form-group">
<label>Enter Employee No:</label>
<input type="text" name="name" class="form-control" ng-model="searchEmpno"/>
</div>
<div>
<button type="button" class="btn btn-primary" ng-click="doSearch()">Click</button>
</div>
</form>
<hr>
<div emp-details ng-if="empno != undefined">
</div>
</div>
</div>
</body>
其中两个:
- 从
到更改您的URLhttp://localhost/“
'data.json”
- 在回调中,将
更改为resp.data
。这将确保您可以直接访问员工数据resp.data.employee
$scope.doSearch = function(employeeN){
empService.findEmployeeById(employeeN)
.then(function(r){
$scope.empno = r.empno;
$scope.ename = r.ename;
$scope.edept = r.edept;
$scope.esal = r.esal;
});
};
服务
this.findEmployeeById = function(empno){
$http({
url: 'http://localhost/data.json',
method: 'GET'
})
.then(function(resp){
return resp.data.employee;
}, function(resp){
$log.error('Error occurred');
});
};
<div>
<button type="button" class="btn btn-primary" ng-click="doSearch(searchEmpno)">Click</button>
</div>
HTML
this.findEmployeeById = function(empno){
$http({
url: 'http://localhost/data.json',
method: 'GET'
})
.then(function(resp){
return resp.data.employee;
}, function(resp){
$log.error('Error occurred');
});
};
<div>
<button type="button" class="btn btn-primary" ng-click="doSearch(searchEmpno)">Click</button>
</div>
点击
大多数问题与项目结构和文件组织有关。
我建议阅读本文,以便正确组织和编写angularJS应用程序
需要进行多个更改
- 您没有引用您的
文件Controller.js
- 还有一个附加的
在您的服务中}
- 没有类似data.json的文件。您需要创建该文件并在服务中引用它。
$http({ url:'data.json', 方法:“获取” })
- 在您的服务中,您将返回相应的数据。它应该是
resp.data.employee
cb(分别数据员工)代码>
查看工作您能否共享项目的文件夹
结构
?您的项目是否使用服务器@穆罕默德是对的,你的URL没有正确定义。通过了解您的文件夹结构,我将能够提供更多帮助。所有文件都放在同一位置。我在我的浏览器中找到该文件的URL为:C:\wamp\www controller.js data.json emp-details.html login.htmlCheck out my answer。让我知道它是否对你有用。@AllJs,它不起作用了……我只是编辑了代码。看一看,让我知道。两件事。您没有正确调用控制器中的服务(您应该在$http
完成后始终使用然后(…)
回调。另一件事是您的服务定义中不需要cb。