AngularJS / Sqlite / Electron - 未知提供者:$dbServiceProvider
Posted
技术标签:
【中文标题】AngularJS / Sqlite / Electron - 未知提供者:$dbServiceProvider【英文标题】:AngularJS / Sqlite / Electron - Unknown provider: $dbServiceProvider 【发布时间】:2019-12-27 05:59:21 【问题描述】:我正在尝试构建电子应用程序,该应用程序从我创建的 SQL 数据库中显示/检索表上的项目,但出现未知提供程序错误。
我尝试在网络上遵循一些解决方案,但问题仍然存在,我不知道哪里做错了
这是我连接到数据库的角度服务 (dbService.js)
app.factory("dbService", function ($http)
var sqlite = require('sqlite-sync');
var db = sqlite.connect('model/database.db');
return db;
);
这是我的控制器 (salesController.js)
app.controller("salesController", function ($scope, $location, $dbService)
$scope.sub =
'title': 'Sales Management'
$scope.listSales = function ()
dbService.runAsync("SELECT * FROM sales WHERE active = 1", function (data)
$scope.sales = data;
);
);
这是我的模块(app.js)
var app = angular.module('bpApp', ['ui.router', 'angularUtils.directives.dirPagination']);
最后我添加了这段代码来显示我的表中的数据 (sales.html)
....
<tbody>
<tr class="bz-tablecell" dir-paginate="sale in sales|filter:search|itemsPerPage:8">
<td id="table-checkbox"><input type="checkbox"></td>
<td style="font-weight: 600">sale.name</td>
<td>sale.amount</td>
<td>sale.quantity</td>
<td><a href="#">sale.customer</a></td>
<td>sale.date</td>
<td class="export-ignore"><span class="approved" style="border-radius: 0 !important;">sale.status</span></td>
<td class="export-ignore"><a href="#">Manage</a></td>
</tr>
</tbody>
...
我已经在我的 index.html 中包含了所有需要的文件,然后通过 ui-view 加载 sale.html,加载视图正常,但没有从我的数据库中检索数据,我不断收到错误:
Error: [$injector:unpr] Unknown provider: $dbServiceProvider <- $dbService <- salesController
请帮我解决它...
【问题讨论】:
【参考方案1】:尝试将控制器的声明更改为
app.controller("salesController", function ($scope, $location, dbService)
您的 dbService 工厂不是 AngularJS API,它有 $
prefix,这就是它无法注入它的原因。
请参考https://docs.angularjs.org/guide/concepts#angular_namespace
$' 前缀命名约定 您可以创建自己的服务,实际上我们将在第 11 步中这样做。作为命名约定,Angular 的内置服务、Scope 方法和一些其他 Angular API 在名称前有一个“$”前缀。命名服务和模型时不要使用“$”前缀,以避免任何可能的命名冲突。
Angular 命名空间 为了防止意外的名称冲突,Angular 会为可能与 $ 冲突的对象的名称添加前缀。请不要在代码中使用 $ 前缀,因为它可能会与 Angular 代码发生意外冲突。
【讨论】:
非常感谢。解决了这个错误,花一整天的时间来解决这个问题以上是关于AngularJS / Sqlite / Electron - 未知提供者:$dbServiceProvider的主要内容,如果未能解决你的问题,请参考以下文章
Experiment 22 - Monte Carlo Simulation