Javascript ng click在部分调用控制器函数时遇到困难
我花了几天的时间来寻找ng click没有在这里调用控制器函数的其他答案,但我仍然无法找出我做得不正确的地方 我有一个main script.js,其中定义了控制器:Javascript ng click在部分调用控制器函数时遇到困难,javascript,angularjs,angularjs-ng-click,Javascript,Angularjs,Angularjs Ng Click,我花了几天的时间来寻找ng click没有在这里调用控制器函数的其他答案,但我仍然无法找出我做得不正确的地方 我有一个main script.js,其中定义了控制器: var dbApp = angular.module('dbApp', ['ngRoute','ngResource']); dbApp.config(function($routeProvider) { $routeProvider .when('/ma
var dbApp = angular.module('dbApp', ['ngRoute','ngResource']);
dbApp.config(function($routeProvider) {
$routeProvider
.when('/managedevices', {
templateUrl : 'pages/managedevices.html',
controller : 'manageDevicesController'
})
});
dbApp.controller('manageDevicesController', function($scope, $http) {
$scope.message = 'manageDevicesController, you say?';
var dataForThisTest = "json=" + encodeURI(JSON.stringify([
{
id: 1,
firstName: "Test",
lastName: "Person"},
{
id: 2,
firstName: "Test2",
lastName: "Person2"}
]));
$scope.people = [];
$scope.loadPeople = function() {
var httpRequest = $http({
method: 'POST',
url: '/echo/json/',
data: dataForThisTest
}).success(function(data, status) {
$scope.people = data;
});
};
});
然后我有一个HTML索引文件,它可以完美地显示部分内容
这个部分看起来像:
<script type="text/javascript">
if(typeof dbApp === 'undefined'){
document.location.href="index.html";
}
</script>
<style>
table {
border: 1px solid #666;
width: 100%;
}
th {
background: #f8f8f8;
font-weight: bold;
padding: 2px;
}
</style>
<body>
<div class="jumbotron text-center">
<p>{{ message }}</p>
</div>
<div ng-controller="manageDevicesController">
<p> Click <a ng-click="loadPeople()">here</a> to load data.</p>
<table>
<tr>
<th>Id</th>
<th>First Name</th>
<th>Last Name</th>
</tr>
<tr ng-repeat="person in people">
<td>{{person.id}}</td>
<td>{{person.firstName}}</td>
</tr>
</table>
</div>
</body>
如果(dbApp的类型==='undefined'){
document.location.href=“index.html”;
}
桌子{
边框:1px实心#666;
宽度:100%;
}
th{
背景:#f8f8;
字体大小:粗体;
填充:2px;
}
{{message}}
单击此处加载数据
身份证件
名字
姓
{{person.id}
{{person.firstName}
似乎ng click不起作用。知道为什么吗?我相信它在div中的ng控制器参考中是正确的 试着像这样重写你的
loadPeople
函数:
$scope.loadPeople = function() {
$http({
method: 'POST',
url: '/echo/json/',
data: dataForThisTest
}).then(function(data, status) {
$scope.people = data;
});
};
您是否确保请求成功?为什么不$http.post(“/echo/json”,dataForThisTest)?根据调试器,loadPeople函数没有被调用,因此请求永远不会发生。没有真正的理由,如果你建议我改变它,我一定会尝试。