Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TypeError: Cannot read property 'concat' of undefined

My problem is that when i run my project it gives me an error that says: TypeError: Cannot read property 'concat' of undefined. it does not display please help.

app.js

    var Call24 = angular.module("Call24", ["ngResource", "ngRoute"]).
config(function($routeProvider) {
    $routeProvider.
        when('/', { controller: ListCtrl, templateUrl: 'CycleModal.html' }).
        when('/edit/:editId', { controller: EditCtrl, templateUrl: 'details.html' }).

        otherwise({ redirectTo: '/' });

    Call24.factory('cyclesFactory', function ($resource) {
return $resource('/api/Cycles/:id', { id3: '@id3' }, { update: 'PUT' });
});

 var ListCtrl = function ($scope, $location, data,$http) {

$scope.selectTest = null;
$scope.testTest = [];
 $scope.cycle = [];

$http({
    method: 'GET',
    url: '/api/Cycles/',
    data: { CycleID: 1 }
}).success(function (result) {
    $scope.testTest = result;
});

$scope.search = function() {
    data.query({
        offset: $scope.offset,
        limit: $scope.limit
        },
        function(something) {
            $scope.cycle = $scope.cycle.concat(something);
        });
};
   $scope.search();

$scope.show_more = function() {
    $scope.offset += $scope.limit;
    $scope.search();
};

 $scope.reset = function () {
   $scope.limit = 4;
   $scope.offset = 0;
   $scope.cycle = [];
   $scope.search();
 }
 };

html

Weeks in Cycle

                    <div class="col-sm-3">
                        <div class="form-group">
                            <div class="input-group input-group-addon">
                                <label>Cycle number</label>
                                <input ng-model="query" class="form-control" placeholder="search         rep">
                                <!--<div class="input-group-btn">
                                    <button ng-click="reset()" class="btn btn-default"    type="submit"><i class="glyphicon glyphicon-search"></i></button>
                                </div>-->
                            </div>
                        </div>
                    </div>

                    <div class="col-sm-1">
                        <div class="form-group">
                            <div class="input-group input-group-addon">
                                <!--<label>Rep</label>
                                <input ng-model="part" class="form-control" placeholder="search rep">-->
                                <div class="input-group-btn">
                                    <button ng-click="reset()" class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </form>

  <table class="table table-striped table-condensed table-bordered">
    <thead>
    <th>Cycle Id</th>
    <th>Weeks In Cycle</th>
    <th>Cycle Number</th>
    <th>Start Date</th>
    <th>End Date</th>

    </thead>
    <tbody>
        <tr ng-repeat="liss in cycle">
            <td>{{liss.CycleID}}</td>
            <td>{{liss.WeeksInCycle}}</td>
            <td>{{liss.Cycle}}</td>
            <td>{{liss.StartDate}}</td>
            <td>{{liss.EndDate}}</td>

        </tr>
    </tbody>
</table>
<div class="form-actions">

    <button class="btn btn-primary" ng-click="updateSurvey()">
        Ok
    </button>
    <button class="btn btn-danger">
        <a href="#/index.html" style="color: white; text-decoration: none">Cancel</a>
    </button>
</div>

I want to display the list from a table but it keeps giving the error i have shown above.

like image 329
ninjaXnado Avatar asked Jan 12 '15 10:01

ninjaXnado


2 Answers

Because $scope.cycle is not initialized

$scope.cycle = '' or $scope.cycle= [] // as per your requirement
like image 154
dhavalcengg Avatar answered Nov 02 '22 13:11

dhavalcengg


seems like you didn't declare the $scope.cycle before its use, javascript try to invoke concat() of $scope.cycle variable but still there is no variable called $scope.cycle. so invoking concat() of a undefined variable cause a error.

if you try to concat two arrays then

try to add $scope.cycle = [] top of the controller

if you try to concat two Strings then

try to add $scope.cycle = '' top of the controller

like image 4
Kalhan.Toress Avatar answered Nov 02 '22 12:11

Kalhan.Toress