Javascript 为什么';这个角度代码/指令似乎正在执行吗?

Javascript 为什么';这个角度代码/指令似乎正在执行吗?,javascript,angularjs,angularjs-directive,angularjs-controller,Javascript,Angularjs,Angularjs Directive,Angularjs Controller,所有链接都没有断开。两个console.log之间的Javascript似乎都没有执行。我一直在努力解决这个问题,但没有发现任何问题。有线索吗 library.js console.log("loaded js"); var app = angular.module("Library", []) .factory("libraryLoader", ["$http", function ($http) { function load(done) {

所有链接都没有断开。两个console.log之间的Javascript似乎都没有执行。我一直在努力解决这个问题,但没有发现任何问题。有线索吗

library.js

console.log("loaded js");

var app = angular.module("Library", [])
    .factory("libraryLoader", ["$http", function ($http) {
        function load(done) {
            $http.get('http://localhost:3000/api/mycollection')
                .success(function(data, status, headers, config){
                    console.log (this);
                    done(null, data);
                })
                .error(function(data, status, headers, config){
                    console.log(status);
                    var ordersErr = new Error(data);
                    ordersErr.code = status;
                    done(ordersErr);
                });
        }
        return {
            load: load
        };
    }])
    .directive("library", [function (){
        return {
            restrict: 'E',
            templateUrl: 'http://localhost:3000/views/library.html',
            controller: ["libraryLoader", "$q", '$http', function (libraryLoader, $q, $http) {
                console.log("in directive controller");
                var ctlr = this;
                libraryLoader.load(function (err, result) {
                    if (err) {
                        ctlr.isLoaded = false;
                    }
                    else {
                        ctlr.data = result;
                        console.log(ctlr.data);
                        ctlr.isLoaded = true;
                    }
                });
            }],
            controllerAs: "ctlr"
        };
    }])
    .controller("LibraryController", ["$scope", function ($scope) {
        var ctlr = this;
    }]);

console.log(app);
library.hbs

You are logged in as {{user.username}}.

<div id="body ng-app="Library">
    <div id="tracks">
        <input class="search" placeholder="Search" />
        <button class="sort" data-sort="name">
            Sort by name
        </button>
        <library></library>
    </div>
</div>

<script src="http://localhost:3000/bower_components/list.js/dist/list.min.js"></script>
<script src="http://localhost:3000/bower_components/angular/angular.min.js"></script>
<script src="http://localhost:3000/js/lib/library.js"></script>
您以{{user.username}身份登录。

可能是因为你的
id=“body
属性缺少结束引号?除此之外,您不需要将
LibraryController
声明为控制器,也不需要在指令模板中使用
ng controller
。而
libraryLoader
可能更适合作为
服务
。为什么要将回调传递给
load
,而不是使用承诺?@jlowcs-Ah,这两种方法都解决了这个问题。谢谢你的帮助。
<table>
    <thead>
        <tr>
            <td>Name</td>
            <td>Genre</td>
        </tr>
</thead>

    <tbody class="list" ng-controller="LibraryController as ctlr">
            <tr ng-repeat="track in ctlr.data">
            <td class="name">{{track.t.properties.name}}</td>
            <td class="genre">{{track.t.properties.genre}}</td>
            </tr>
    </tbody>
</table>