已解决:下面的代码现在适用于任何需要它的人。
- 创建一个查询数据库并返回查询结果的 Angular 工厂。
- 将这些查询结果传递到我的控制器的 $scope
- 在我的视图中渲染 $scope 变量的结果 (html)
挑战: 因为这是针对 node-webkit (nwjs) 应用程序,所以我尝试在不使用 express、设置 api 端点和使用 $http 服务返回查询结果的情况下执行此操作。我觉得应该有一种更雄辩的方式来做到这一点,将数据从 nodejs 直接传递到角度控制器。以下是我尝试过的,但没有奏效。
数据库: 以下代码用于 nedb 数据库。
我更新的控制器
app.controller('homeCtrl', function($scope,homeFactory){
homeFactory.getTitles().then(function(data){
$scope.movieTitles = data;
});
});
我更新的工厂:
app.factory('homeFactory', function($http,$q) {
return {
getTitles: function () {
var deferred = $q.defer();
var allTitles = [];
db.find({}, function (err, data) {
for (var i = 0, len = data.length; i < len; i++) {
allTitles.push(data[i].title)
}
deferred.resolve(allTitles);
});
return deferred.promise;
}
}
});
HTML
<script>
var Datastore = require('nedb');
var db = new Datastore({ filename: './model/movies.db', autoload: true });
</script>
<--shows up as an empty array-->
<p ng-repeat="movie in movieTitles">{{movie}}</p>