簡體   English   中英

遇到ng-click困難,無法部分調用控制器功能

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM