为什么我的控制器不会识别services.js中定义的这个数组?

时间:2014-01-26 20:07:19

标签: javascript angularjs

关于静态数据应该作为服务存储而不是存储在控制器中的概念,我已经将数据从controller.js移动到了services.js,但它不再像ng-repeat那样显示在ng-repeat中它在控制器中。

//services.js

'use strict';

angular.module('myApp.services', [])

.factory('myProperties', function () {

        var myProperties = [
        {
            'name': '3 Bedroom Fixer Upper',
            'city': 'Santa Rosa',
            'state': 'CA',
            'date_added': '2/3/14'
        },
        {
            'name': '2 Bedroom Condo',
            'city': 'Vallejo',
            'state': 'CA',
            'date_added': '4/10/20'
        },
        {
            'name': 'Apartment',
            'city': 'Salt Lake City',
            'state': 'UT',
            'date_added': '2/5/14'
        }
    ];
});

//controller.js

.controller('dashCtrl', function($scope, myProperties) {    

    $scope.myProperties = myProperties;

});

奖励积分:在这里编写单元测试是否有意义?如果是这样,我应该测试什么?

1 个答案:

答案 0 :(得分:3)

我相信你需要从服务中返回数组,否则它仍然是服务范围的内部。

.factory('myProperties', function () {

        var myProperties = [
        {
            'name': '3 Bedroom Fixer Upper',
            'city': 'Santa Rosa',
            'state': 'CA',
            'date_added': '2/3/14'
        },
        {
            'name': '2 Bedroom Condo',
            'city': 'Vallejo',
            'state': 'CA',
            'date_added': '4/10/20'
        },
        {
            'name': 'Apartment',
            'city': 'Salt Lake City',
            'state': 'UT',
            'date_added': '2/5/14'
        }
    ];
    // Return the array here...
    return myProperties
});