错误ReferenceError:_未在h。$ scope.setSelectedClient中定义?

时间:2014-05-28 15:21:07

标签: angularjs angularjs-scope angularjs-ng-repeat

这是我的controller.js。

var animateApp = angular.module('animateApp');
animateApp.controller('portofolioController', ['$scope', function ($scope) {
$scope.selectedCategory = [];
$scope.categoryList = [{
    id: 1,
    name: 'webdesign'
}, {
    id: 2,
    name: 'webdevelop'
}, {
    id: 3,
    name: 'logo'
}];

$scope.clients = [{
    name: '1',
    designation: 'descriere',
    category: {
        id: 1,
        name: 'webdesign'
    }
}, {
    name: '2',
    designation: 'descriere',
    category: {
        id: 2,
        name: 'wendevelop'
    }
},  
{
    name: '3',
    designation: 'descriere',
    category: {
        id: 3,
        name: 'logo'
    }
},  
{
    name: '4',
    designation: 'descriere',
    category: {
        id: 4,
        name: 'webdesign'
    }
},  
{
    name: '5',
    designation: 'descriere',
    category: {
        id: 5,
        name: 'webdevelop'
    }
}];

$scope.setSelectedClient = function () {
    var id = this.category.id;
    if (_.contains($scope.selectedCategory, id)) {
        $scope.selectedCategory = _.without($scope.selectedCategory, id);
    } else {
        $scope.selectedCategory.push(id);
    }
    return false;
};  

}]);

这是在我的html文件中,是一个按钮,当按下时,我的列表按类别排序。我在filter.js中有一个过滤器,只显示此类别中的字段。

   <li data-ng-repeat="category in categoryList"> <a data-ng-click="setSelectedClient()" class="btn">{{category.name}}</a></li> 

点击按钮后,我收到错误。我正在寻找这样的帖子,但我找不到任何东西。    ReferenceError: _ is not defined at h.$scope.setSelectedClient (http://localhost/Portofolio2/js/controllers.js:60:13)

2 个答案:

答案 0 :(得分:3)

_.contains是来自Underscore或Lodash库的方法。

包含该库或使用vanilla JavaScript来复制该功能。

http://lodash.com

http://underscorejs.org/

答案 1 :(得分:0)

在$ scope.setSelectedClient函数中,有一个对未声明对象的引用&#39; _&#39;

if (_.contains($scope.selectedCategory, id)) {

检查您是否错过了包含任何lib文件