AngularJS控制器和它的问题服务

时间:2013-09-19 09:06:50

标签: javascript angularjs

我有一个小玩具角度应用程序的以下代码

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()来创建控制器,但这也不起作用。那我在这里错过了什么?

1 个答案:

答案 0 :(得分:3)

将开始括号放在与return语句相同的行中,即:

return [    // <---------- HERE
    {
            title: "Mary had a little lamb",
            ...

否则Javascript认为你什么都没回来!请参阅小提琴:http://jsfiddle.net/HG7Ek/