2015-10-15 127 views
0

Huy!我有我的代碼一些問題:得到一個錯誤參數'MainController'不是一個函數,得到了undefined

這是我的index.html文件:

<body ng-app="myApp" ng-controller="MainController"> 

     <nav class="navbar navbar-default"> 
      <div class="container-fluid"> 
       <!-- Brand and toggle get grouped for better mobile display --> 
       <div class="navbar-header"> 
        <a class="navbar-brand" href="#">diyetSahovatKafe</a> 
       </div> 
      </div> 
     </nav> 
     <div class="main"> 
      <div class="container"> 
       <div class="row"> 
        <div class="col-md-5"> 
         <ul> 
         <li ng-repeat="item in items.data" id="item{{item.id}}"> 
          <a href="#">{{item.title}}</a> 
          <img ng-src="{{ item.image }}" /> 
          <button ng-click="addItem(item)">Add Me</button> 
         </li> 
         </ul> 
         <p>Cart:</p> 
         <ul> 
         <li ng-repeat="item in cart"> 
          <a href="#">{{item.title}} | Count: {{item.count}}</a> 
          <a ng-click="deleteItem(item)" class="delete-item">X</a> 

         </li> 
         </ul> 
        </div> 
       </div> 
      </div> 
     </div> 

這到底是我的app.js文件:

var app = angular.module('myApp', []); 

和控制文件:

app.controller('MainController', ['$scope', function ($scope, items) { 

$scope.items = items; 
$scope.cart = []; 

$scope.deleteItem = function(item) { 
    var cart = $scope.cart; 
    var match = getMatchedCartItem(item); 
    if (match.count > 1) { 
     match.count -= 1; 
     return; 
    } 
    cart.splice(cart.indexOf(item), 1); 
    } 



$scope.addItem = function(item) { 
    var match = getMatchedCartItem(item); 
    if (match) { 
     match.count += 1; 
     return; 
    } 
    var itemToAdd = angular.copy(item); 
    itemToAdd.count = 1; 
    $scope.cart.push(itemToAdd); 
    } 


    function getMatchedCartItem(item) { 
    return $scope.cart.find(function(itm) { 
     return itm.id === item.id 
    }); 

    } 

}]); 

.factory = ("items", function() { 
    var items = {}; 
    items.data = [{ 
    id: 1, 
    title: "Item 1", 
    image: "img/item01.jpg" 
    }, { 
    id: 2, 
    title: "Item 2", 
    image: "img/item02.jpg" 
    }, { 
    id: 3, 
    title: "Item 3", 
    image: "img/item03.jpg" 
    }, { 
    id: 4, 
    title: "Item 4", 
    image: "img/item04.jpg" 
    }]; 
    return items; 
}); 

當我運行代碼時沒有顯示任何內容,請檢查我的代碼並向我解釋我的錯誤,謝謝!

+0

接近你有'.factory ='的末尾,你沒有任何東西,它會給你一個語法錯誤,應該顯示在控制檯的MainController錯誤之上。 –

+1

你永遠不會將'items'注入到你的控制器依賴關係數組中。 – tymeJV

回答

0
  1. 你有額外的;=字符:

    }]); // end of MainController 
    
    .factory = ("items", function() { 
    
  2. 你忘了在注入items

    app.controller('MainController', ['$scope', function ($scope, items) { 
    

不過,我懷疑你有其他錯誤,這在這裏是不可見的,因爲你看到的東西是可見的ld在分號後面寫點類似Uncaught SyntaxError: Unexpected token .的東西。

相關問題