1

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

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() 创建控制器,但效果不佳。那么我在这里错过了什么?

4

1 回答 1

3

将左括号与 return 语句放在同一行,即:

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

否则 Javascript 认为你什么都没有返回!见小提琴:http: //jsfiddle.net/HG7Ek/

于 2013-09-19T09:26:46.503 回答