[英]Having difficulty with an ng-click not calling controller function in partial
我花了幾天的時間尋找其他答案,以了解ng-click此處未調用控制器功能,但我仍然無法弄清楚自己在做什么。
我有一個主要的script.js,其中定義了控制器:
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>
似乎ng-click無效。 知道為什么嗎? 我相信它在div中的ng-controller參考中是正確的!
嘗試像這樣重寫您的loadPeople
函數:
$scope.loadPeople = function() {
$http({
method: 'POST',
url: '/echo/json/',
data: dataForThisTest
}).then(function(data, status) {
$scope.people = data;
});
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.