我有一个小玩具角度应用程序的以下代码
var myApp = angular.module("MyApp", []);
myApp.factory("Items", function()
{
var items = {};
items.query = function()
{
return
[
{
title: "Mary had a little lamb",
price: 2.5,
},
{
title: "My Experiments with Truth",
price: 6.25,
},
{
title: "Indian Summer",
price: 5.75,
},
];
};
return items;
});
function ItemsViewCtrl($scope, Items)
{
$scope.items = Items.query();
$scope.numberOfItems = function()
{
window.alert("We have "+$scope.items.length+" with us");
};
}
所以,我们有一个小模块,一个服务和一个控制器!一切都好! 但问题是数组项在模板中是不可见的或未定义的(当然是由ng-controller指令所崇拜)。
我甚至尝试通过调用module.controller()来创建控制器,但这也不起作用。那我在这里错过了什么?
答案 0 :(得分:3)
将开始括号放在与return语句相同的行中,即:
return [ // <---------- HERE
{
title: "Mary had a little lamb",
...
否则Javascript认为你什么都没回来!请参阅小提琴:http://jsfiddle.net/HG7Ek/