2014-12-03 32 views
0

我在創建變量並在MEAN軟件包中使用它時遇到了問題。我把它作爲一個例子的「文章」包。我在客戶端控制器中看到的所有內容都是相同的,但我不確定爲什麼當我嘗試在「books」包中啓動我的應用程序(而不是「articles」包中的應用程序時出現錯誤。'book'已定義,但從未使用MEAN堆棧控制器

我還沒有實現所有文章已經有的控制器,這可能是一個問題?

當我開始咕嚕的應用程序,我得到這個錯誤:「書」的定義,但從未使用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

立足呢?在你定義book

$scope.create函數的例子
var book = new Books({ 

並從不使用它。這就是你得到警告的原因。如果你想在開發中跳過jshint警告,使用grunt -f或者在你的grunt配置中允許未使用的變量(或者如果你使用的是.jshintrc)

+2

在你的代碼中,你註釋掉了實際使用你創建的變量的唯一行。 – Claies 2014-12-03 09:28:32

+0

非常感謝 – 2014-12-03 09:30:41