"book" определен, но никогда не использовался контроллер стека MEAN

У меня возникают проблемы с созданием переменной и ее использованием в пакете MEAN. Я основываю его на пакете "статьи", который приводится в качестве примера. Все, что я вижу, одно и то же в клиентском контроллере, но я не уверен, почему я уловил ошибку, когда пытаюсь запустить приложение (с хрюканьем) в пакете "книги", но не в пакете "статьи",

Я еще не реализовал все контроллеры, которые есть в статьях, это может быть проблемой?

Когда я запускаю приложение с хрюканьем, я получаю эту ошибку: "book" определен, но никогда не использовался контроллер стека MEAN

Я считаю, что ошибка находится в контроллере, но если вам нужно посмотреть другие файлы, пожалуйста, дайте мне знать.

books.js

//client-side controller

'use strict';

angular.module('mean.books').controller('BooksController', ['$scope', 'Global', 'Books',
 function($scope, Global, Books) {
 $scope.global = Global;
 $scope.package = {
 name: 'books'
 };

 $scope.hasAuthorization = function(book) {
 if (!book || !book.user) return false;
 return $scope.global.isAdmin || book.user._id === $scope.global.user._id;
 };

 $scope.create = function(isValid) {
 if (isValid) {
 var book = new Books({
 title: this.title,
 author: this.author,
 description: this.description,
 seller: this.seller
 });
 /* Not sure if we need this location thing 
 book.$save(function(response) {
 $location.path('books/' + response._id);
 });
 */

 this.title = '';
 this.content = '';
 this.description = '';
 this.seller = ''; // or this.user implement
 } else {
 $scope.submitted = true;
 }
 };

 }
]);

articles.js//это пример того, что я основываю его на

'use strict';

angular.module('mean.articles').controller('ArticlesController', ['$scope', '$stateParams', '$location', 'Global', 'Articles',
 function($scope, $stateParams, $location, Global, Articles) {
 $scope.global = Global;

 $scope.hasAuthorization = function(article) {
 if (!article || !article.user) return false;
 return $scope.global.isAdmin || article.user._id === $scope.global.user._id;
 };

 $scope.create = function(isValid) {
 if (isValid) {
 var article = new Articles({
 title: this.title,
 content: this.content
 });
 article.$save(function(response) {
 $location.path('articles/' + response._id);
 });

 this.title = '';
 this.content = '';
 } else {
 $scope.submitted = true;
 }
 };

 $scope.remove = function(article) {
 if (article) {
 article.$remove(function(response) {
 for (var i in $scope.articles) {
 if ($scope.articles[i] === article) {
 $scope.articles.splice(i, 1);
 }
 }
 $location.path('articles');
 });
 } else {
 $scope.article.$remove(function(response) {
 $location.path('articles');
 });
 }
 };

 $scope.update = function(isValid) {
 if (isValid) {
 var article = $scope.article;
 if (!article.updated) {
 article.updated = [];
 }
 article.updated.push(new Date().getTime());

 article.$update(function() {
 $location.path('articles/' + article._id);
 });
 } else {
 $scope.submitted = true;
 }
 };

 $scope.find = function() {
 Articles.query(function(articles) {
 $scope.articles = articles;
 });
 };

 $scope.findOne = function() {
 Articles.get({
 articleId: $stateParams.articleId
 }, function(article) {
 $scope.article = article;
 });
 };
 }
]);
1 ответ

В функции $scope.create вы определили book

var book = new Books({

и никогда не использовать его. По этой причине вы получите предупреждение. Если вы хотите пропустить предупреждения jshint в разработке, используйте grunt -f или разрешите неиспользуемые переменные в вашей конфигурации grunt (или.jshintrc, если вы ее используете)

licensed under cc by-sa 3.0 with attribution.