角Js和分区

时间:2014-10-30 10:17:38

标签: angularjs onsen-ui

我想以行和列的形式显示数据。我有数组形式的数据列表。我正在使用onsenui

这是代码

 <link rel="stylesheet" href="lib/onsen/css/onsenui.css">
 <link rel="stylesheet" href="lib/onsen/css/onsen-css-components.css">
 <script src="lib/onsen/js/angular/angular.js"></script>
 <script src="lib/onsen/js/onsenui.js"></script>
 <script>

ons.bootstrap();

function MyCtrl($scope)
{
    $scope.inside ="asd";
$scope.names = [
    {name:'Mac',path:'http://www.hdicon.com/wp-content/uploads/2010/07/McDonalds_golden_arch.png'},
    {name:'KFC',path:'http://facebookazine.com/wp-content/uploads/2012/06/KFC_icon.jpg'},
    {name:'Karlsruhe',path:'http://media-cache-ak0.pinimg.com/736x/8b/55/44/8b55442ccb4d3f3ac514a1dceaa3ea43.jpg'}
];

}
</script>

这是html代码

    <div  ng-controller="MyCtrl" >
    <ons-row ng-repeat ="x in names| partition:2" class="center">
            <ons-col>
                    <img src ="{{x.path}}" width="100px"/>
            </ons-col>
            <ons-col>
                    <h4>{{x.name}}</h4>
            </ons-col>

    </ons-row>
    </div>

当我打开页面时,我收到此错误

    Error: [$injector:unpr] Unknown provider: partitionFilterProvider <- partitionFilter
     http://errors.angularjs.org/1.2.10/$injector/unpr?p0=partitionFilterProvider%20%3C-%20partitionFilter

我在互联网上搜索了这个错误,但我没有得到任何解决方案

1 个答案:

答案 0 :(得分:0)

检查以下代码(我的项目中实现了过滤分区代码,该代码来自博客)

    var app = angular.module('MyApp', [])
    .controller('MyCtrl', function ($scope) {
      $scope.inside ="asd";
      $scope.names = [
        {name:'Mac',path:'http://www.hdicon.com/wp-content/uploads/2010/07/McDonalds_golden_arch.png'},
        {name:'KFC',path:'http://facebookazine.com/wp-content/uploads/2012/06/KFC_icon.jpg'},
        {name:'Karlsruhe',path:'http://media-cache- ak0.pinimg.com/736x/8b/55/44/8b55442ccb4d3f3ac514a1dceaa3ea43.jpg'}
    ];
    }
.filter('partition', function () {
    var cache = {};
    var filter = function (arr, size) {
        if (!arr) { return; }
        var newArr = [];
        for (var i = 0; i < arr.length; i += size) {
            newArr.push(arr.slice(i, i + size));
        }
        var arrString = JSON.stringify(arr);
        var fromCache = cache[arrString + size];
        if (JSON.stringify(fromCache) === JSON.stringify(newArr)) {
            return fromCache;
        }
        cache[arrString + size] = newArr;
        return newArr;
    };
    return filter;
})