2014-05-11 49 views
-1

爲了使用Angular JS,我嘗試使用Factory作爲我的數據堆棧...AngularJS出廠問題

現在,它不起作用。我剛剛把一個簡單的json數據由工廠返回,然後

該腳本已停止工作。這是angularjs的最基本的例子,因爲它使用json來重複並遍歷遍歷數組。

這是我寫的所有angularjs:

var Item = angular.module("Item", ['ngRoute']); 

Item.config(function($routeProvider){ 
    $routeProvider 
     .when("/add", { 
      controller : "ItemController", 
      templateUrl : "index.html" 
     }) 
     .when("/edit", { 
      controller : "ItemController", 
      templateUrl : "index.html" 
     }); 
}); 

Item.factory("ItemsFactory", function(){ 

    var items = [ 
     { name : "Washing Powder", 
     price : "2000", 
     balance : 14 
     }, 

     { name : "Shampoo", 
      price : "8500", 
      balance : 03 
     }, 

     { name : "Soap", 
      price : "1850", 
      balance : 27 
     } 
    ]; 

    var factory = {}; 

    factory.getItems() = function(){ 
     return items; 
    }; 

    factory.postItems() = function(){ 
     // POST items 
    }; 

    return factory; 

}); 


Item.controller("ItemController", function($scope, ItemsFactory){ 
    $scope.items = ItemsFactory.getItems(); 

    init(); 

    function init() 
    { 
     $scope.items = ItemsFactory.getItems(); 
    } 


    $scope.AddNewItem = function(){ 
     $scope.items.push({ 
      name : $scope.NewItem.name, 
      price : $scope.NewItem.price 
     }); 
    }; 
}); 

這裏是HTML標記:

<!DOCTYPE html> 
<html > 
<head> 
    <title>Practicing AngularJS Framework...!</title> 
    <script src="angular.js" type="text/javascript"></script> 
    <script src="ngroute.js" type="text/javascript"></script> 
    <script src="scripts.js" type="text/javascript"></script> 
</head> 
<body data-ng-app="Item"> 
     <div data-ng-controller="ItemController"> 
      <div data-ng-repeat="each in items"> 
       <p>Item {{ each.name }} costs {{ each.price }}.</p> 
      </div> 
      <div> 
       <input type="text" data-ng-model="NewItem.name" /> 
       <input type="text" data-ng-model="NewItem.price" /> 
       <br /> 
       <input type="submit" value="Add Item" data-ng-click="AddNewItem()" /> 
      </div> 
     </div> 
</body> 
</html> 

它不json的內容的負載贅述瞬間...什麼都沒有發生..

+0

嘗試CHAGE'輸入類型= 「提交」'到'輸入類型= 「按鈕」'或改變' data-ng-click'到'data-ng-submit' – Grundy

+0

這個問題不是點擊事件。閱讀問題,返回的數據(如果有的話)工廠不會迭代通過 –

回答

1

我認爲這是更好的使用這樣的事情返回值服務:

Item.factory("ItemsFactory", function(){ 

var items = [ 
    { name : "Washing Powder", 
    price : "2000", 
    balance : 14 
    }, 

    { name : "Shampoo", 
     price : "8500", 
     balance : 03 
    }, 

    { name : "Soap", 
     price : "1850", 
     balance : 27 
    } 
]; 

return { 
    getItems: function(){ 
    return items; 
    }, 

postItems:function(){ 

} 
}); 

也是它想:

factory.getItems() = function(){} 

是錯誤的,正確的是:

factory.getItems = function(){} 
+0

它不工作,但是.. –

+0

你最後編輯做了伎倆。然而,在你提到我之前,我自己解決了它,但對於未來的訪問者,我接受你的答案。謝謝回答 –