ReferenceError: ArticleService is not defined
ReferenceError: ArticleService is not defined
这几天都解决不了,查了很多帖子,求助。
使用此页面中的示例:
http://gonehybrid.com/how-to-use-pouchdb-sqlite-for-local-storage-in-your-ionic-app/
我正在使用
- 离子
- 科尔多瓦
- PouchDB
- AngularJS
我的环境
- Cordova CLI:5.3.1
- 离子版本:1.1.0
- Ionic CLI 版本:1.6.5
- Ionic 应用程序库版本:0.3.9
- OS: Mac OS X 小牛队
- 节点版本:v0.12.7
controllers.js
angular.module('starter.controllers', [])
.controller('OverviewCtrl', function($scope, $ionicPlatform) {
var vm = this;
// Initialize the database.
$ionicPlatform.ready(function() {
ArticleService.initDB();
// Get all articles records from the database.
ArticleService.getAllArticles().then(function(articles) {
vm.articles = articles;
});
});
/*
// Initialize the modal view.
$ionicModal.fromTemplateUrl('templates/playlists.html', {
scope: $scope
}).then(function(modal) {
$scope.modal = modal;
});
*/
vm.showAddArticleModal = function() {
$scope.article = {};
};
vm.showEditArticleModal = function(article) {
$scope.article = article;
};
$scope.saveArticle = function() {
ArticleService.addArticle($scope.article);
};
return vm;
})
Playlists.html
<ion-view view-title="List">
<ion-content>
<ion-list>
<ion-item ng-controller="OverviewCtrl as vm" ng-repeat="a in vm.articles" ng-click="vm.showEditArticleModal(a)">
<div style="display: block;margin-left: auto;margin-right: auto">{{ a.image }}</div>
<div style="float: center">{{ a.descr }}</div>
</ion-item>
</ion-list>
</ion-content>
</ion-view>
services.js
angular.module('starter.services', [])
.factory('ArticleService', ['$q', function($q) {
var _db;
var _articles;
return {
initDB: initDB,
getAllArticles: getAllArticles,
addArticle: addArticle,
...
};
function initDB() {
// Creates the database or opens if it already exists
_db = new PouchDB('articles', {adapter: 'websql'});
};
function addArticle(article) {
return $q.when(_db.post(article));
};
...
}])
menu.html
...
<ion-item menu-close href="#/app/playlists">
List
</ion-item>
...
apps.js
.state('app.playlists', {
url: '/playlists',
views: {
'menuContent': {
templateUrl: 'templates/playlists.html',
controller: 'OverviewCtrl'
}
}
})
camera.html
<ion-modal-view>
...
<div class="padding">
<button ng-controller="OverviewCtrl" ng-click="saveArticle()" class="button button-block button-positive activated">Spara</button>
</div>
...
</ion-modal-view>
我创建了一个 ArticleService 来保存来自 camera.html 的数据。问题已经出现在构建中,控制器中无法引用 ArticleService。
目前您正在 OverviewCtrl
中使用 ArticleService
,但您并未将其注入控制器功能。要修复它,请更改
.controller('OverviewCtrl', function($scope, $ionicPlatform) {
至
.controller('OverviewCtrl', function($scope, $ionicPlatform, ArticleService) {
我已经解决了这个问题。我的代码中有几个问题。主要在 Services.js 。更改了 ArticleService 的函数头以开头。
.factory('ArticleService', ['$q', ArticleService]);
函数 ArticleService($q) {
还在 Controller.js
中更改了 OverviewCtrl 的函数头
.controller('OverviewCtrl', ['$scope', '$ionicModal', '$ionicPlatform', 'ArticleService', function($scope, $ionicModal, $ionicPlatform, ArticleService ) {
这几天都解决不了,查了很多帖子,求助。 使用此页面中的示例: http://gonehybrid.com/how-to-use-pouchdb-sqlite-for-local-storage-in-your-ionic-app/
我正在使用
- 离子
- 科尔多瓦
- PouchDB
- AngularJS
我的环境
- Cordova CLI:5.3.1
- 离子版本:1.1.0
- Ionic CLI 版本:1.6.5
- Ionic 应用程序库版本:0.3.9
- OS: Mac OS X 小牛队
- 节点版本:v0.12.7
controllers.js
angular.module('starter.controllers', [])
.controller('OverviewCtrl', function($scope, $ionicPlatform) {
var vm = this;
// Initialize the database.
$ionicPlatform.ready(function() {
ArticleService.initDB();
// Get all articles records from the database.
ArticleService.getAllArticles().then(function(articles) {
vm.articles = articles;
});
});
/*
// Initialize the modal view.
$ionicModal.fromTemplateUrl('templates/playlists.html', {
scope: $scope
}).then(function(modal) {
$scope.modal = modal;
});
*/
vm.showAddArticleModal = function() {
$scope.article = {};
};
vm.showEditArticleModal = function(article) {
$scope.article = article;
};
$scope.saveArticle = function() {
ArticleService.addArticle($scope.article);
};
return vm;
})
Playlists.html
<ion-view view-title="List">
<ion-content>
<ion-list>
<ion-item ng-controller="OverviewCtrl as vm" ng-repeat="a in vm.articles" ng-click="vm.showEditArticleModal(a)">
<div style="display: block;margin-left: auto;margin-right: auto">{{ a.image }}</div>
<div style="float: center">{{ a.descr }}</div>
</ion-item>
</ion-list>
</ion-content>
</ion-view>
services.js
angular.module('starter.services', [])
.factory('ArticleService', ['$q', function($q) {
var _db;
var _articles;
return {
initDB: initDB,
getAllArticles: getAllArticles,
addArticle: addArticle,
...
};
function initDB() {
// Creates the database or opens if it already exists
_db = new PouchDB('articles', {adapter: 'websql'});
};
function addArticle(article) {
return $q.when(_db.post(article));
};
...
}])
menu.html
...
<ion-item menu-close href="#/app/playlists">
List
</ion-item>
...
apps.js
.state('app.playlists', {
url: '/playlists',
views: {
'menuContent': {
templateUrl: 'templates/playlists.html',
controller: 'OverviewCtrl'
}
}
})
camera.html
<ion-modal-view>
...
<div class="padding">
<button ng-controller="OverviewCtrl" ng-click="saveArticle()" class="button button-block button-positive activated">Spara</button>
</div>
...
</ion-modal-view>
我创建了一个 ArticleService 来保存来自 camera.html 的数据。问题已经出现在构建中,控制器中无法引用 ArticleService。
目前您正在 OverviewCtrl
中使用 ArticleService
,但您并未将其注入控制器功能。要修复它,请更改
.controller('OverviewCtrl', function($scope, $ionicPlatform) {
至
.controller('OverviewCtrl', function($scope, $ionicPlatform, ArticleService) {
我已经解决了这个问题。我的代码中有几个问题。主要在 Services.js 。更改了 ArticleService 的函数头以开头。
.factory('ArticleService', ['$q', ArticleService]); 函数 ArticleService($q) {
还在 Controller.js
中更改了 OverviewCtrl 的函数头.controller('OverviewCtrl', ['$scope', '$ionicModal', '$ionicPlatform', 'ArticleService', function($scope, $ionicModal, $ionicPlatform, ArticleService ) {