Javascript 使用$routeParams未定义和ngRepeat:Dups错误

Javascript 使用$routeParams未定义和ngRepeat:Dups错误,javascript,angularjs,Javascript,Angularjs,我试图使$routeParams不是未定义的,我不知道我做了什么,但重复:Dups错误出现了。我犯了什么错误? 我想我想做: 我有这个网址: 我希望参数(11_000402_A0)传递给API,但Angular不会读取表单url,并且参数仍然未定义。我的代码如下: 带路由的app.js: 'use strict'; var appPokayoke = angular.module('appPokayoke', ['ngRoute', 'pokayokaCtr', 'pokayokaSiteCt

我试图使$routeParams不是未定义的,我不知道我做了什么,但重复:Dups错误出现了。我犯了什么错误? 我想我想做:

我有这个网址:

我希望参数(11_000402_A0)传递给API,但Angular不会读取表单url,并且参数仍然未定义。我的代码如下:

带路由的app.js:

'use strict';

var appPokayoke = angular.module('appPokayoke', ['ngRoute', 'pokayokaCtr', 'pokayokaSiteCtr', 'navigationCtr']);

appPokayoke.config(function($routeProvider) 
{
     // ----------------------------------------
    // Darwings
    // ----------------------------------------
    $routeProvider
        .when('/admin/drawings', {
            templateUrl : 'views/admin/drawings.html',
            controller  : 'drawings'
        })
        .when('/admin/show/drawing/:name', {
            templateUrl : 'views/admin/drawing.html',
            controller  : 'drawingShow'
        })
        .when('/admin/drawing/create', {
            templateUrl : 'views/admin/drawing-create.html',
            controller  : 'drawingCreate'
        })

    // ----------------------------------------
    // Pokayokes 
    // ----------------------------------------
    $routeProvider
        .when('/admin/pokayokes/:name/:number', {
            templateUrl : 'views/admin/pokayokes.html',
            controller  : 'pokayokes'
        })



    // ----------------------------------------
    // Article
    // ----------------------------------------

        .when('/admin/articles', {
            templateUrl : 'views/admin/articles.html',
            controller  : 'articles'
        })
        .when('/admin/article/:id', {
            templateUrl : 'views/admin/article.html',
            controller  : 'article'
        })
        .when('/admin/article/create/part1/:drawingName', {
            templateUrl : 'views/admin/article-create-part1.html',
            controller  : 'articleCreatePart1'
        })
        .when('/admin/article/create/part2/:drawingName/:articleName', {
            templateUrl : 'views/admin/article-create-part2.html',
            controller  : 'articleCreatePart2'
        })

});
和controller.js:

'use strict';

var pokayokaCtr = angular.module( 'pokayokaCtr' , [ 'ngRoute' ] );



// -------------------------------------------
//                  DRAWINGS
// -------------------------------------------

pokayokaCtr.controller( 'drawings' , [ '$scope' , '$http', function( $scope, $http ){


    $http.get( 'api/admin/drawings/get' ).
    success( function( data ){
        $scope.drawings = data;
    }).error( function(){
        console.log( 'Błąd pobrania pliku z bazy danych! Drawings' );
    });

}]);

pokayokaCtr.controller( 'drawingCreate' , [ '$scope' , '$http' , '$timeout', function( $scope , $http, $timeout){

    $scope.createDrawing = function ( drawing ) {


        $http.post('api/admin/drawings/create', {
            drawing : drawing
        }).success(function(){

            $timeout(function(){
                $scope.success = false;

                $scope.drawing = {};
            } , 1500 );
            console.log($scope.drawing);

        }).error(function(){
            console.log('Error database connect!')
        });

    };

}]);


pokayokaCtr.controller( 'pokayokes' , [ '$scope' , '$http', '$routeParams', function( $scope, $http, $routeParams, numberColFilter ){

    var pokayokeName = $routeParams.name;
    $scope.name = pokayokeName;

    var number = $routeParams.number;
    $scope.number = number; 

    $http.get( 'api/admin/pokayokes/get/' + pokayokeName + '/'+ number).
    success( function( data ){
        $scope.pokayokes = data;
    }).error( function(){
        console.log( 'Error database connect!' );
    });


}]);

pokayokaCtr.filter('numberColFilter', function() {
     return function(items,number) {

        var range = [];

        var start = 7;
        var end = start + number;

        for (var i = start; i < end; i++)
        {
            range.push(items[i]);
        }

        return range;
  };
});



// -------------------------------------------
//                  ARTICLES
// -------------------------------------------

pokayokaCtr.controller( 'articles' , [ '$scope' , '$http', function( $scope, $http  ){


    $http.get( 'api/admin/articles/get' ).
    success( function( data ){
        $scope.articles = data;
    }).error( function(){
        console.log( 'Error database connect!' );
    });

}]);

pokayokaCtr.controller( 'articleCreatePart1', ['$scope', '$http', '$routeParams', 'pantonsLoader','$timeout', '$location', function( $scope, $http, $routeParams, pantonsLoader,$timeout, $location ){

    var drawingName = $routeParams.name;
    $scope.name = drawingName; 
    console.log(drawingName);


    pantonsLoader(function (data){
        $scope.pantons = data;      
    });

    $scope.articleCreatePart1 = function (article) {

        $http.post('api/admin/articles/createPart1/' + drawingName + '/' + articleName, {
            article : article
        }).success(function(){

            $timeout(function(){
                $scope.success = false;
                $scope.article = {};
            } , 1500 );



            var articleName = $scope.article.nazwa_art; 
            console.log(articleName);

            var newPath = $location.path('/admin/article/create/part2/' + drawingName + '/' +articleName);
            console.log(newPath);
            console.log($scope.article);

        }).error(function(){
            console.log('Error database connect!');
        });

    };

}]);


pokayokaCtr.factory('pantonsLoader', ['$http', '$routeParams', function($http, $routeParams) {

   var drawingName = $routeParams.name_rys;


   return function (successCallback) {

      $http.get( 'api/admin/pantons/get/' + drawingName ).
      success(successCallback).error( function(){
      console.log( 'Błąd pobrania pliku z bazy danych! pantons' );
      });
   };
}]);



// -------------------------------------------
//                  PANTONS
// -------------------------------------------

pokayokaCtr.controller( 'pantons' , [ '$scope' , '$http', function( $scope, $http ){


    $http.get( 'api/admin/pantons/get' ).
    success( function( data ){
        $scope.pantons = data;
        console.log($scope.pantons);
    }).error( function(){
        console.log( 'Błąd pobrania pliku z bazy danych! pantons' );
    });


}]);

pokayokaCtr.controller( 'createPanton' , [ '$scope' , '$http', '$timeout', function( $scope , $http,$timeout){

    $scope.createPanton = function ( panton ) {


        $http.post('api/admin/pantons/create', {
            panton : panton
        }).success(function(){
            $scope.success = true;

            $timeout(function(){
                $scope.success = false;
                $scope.panton = {};
            } , 1500 );
        }).error(function(){
            console.log('Error database connect!');
        });

    };


}]);
“严格使用”;
var pokayokaCtr=angular.module('pokayokaCtr',['ngRoute']);
// -------------------------------------------
//图纸
// -------------------------------------------
控制器('drawings',['$scope','$http',函数($scope,$http){
$http.get('api/admin/drawings/get')。
成功(功能(数据){
$scope.drawings=数据;
}).错误(函数(){
console.log('Błd pobrania pliku z bazy danych!Drawings');
});
}]);
控制器('drawingCreate',['$scope','$http','$timeout',函数($scope,$http,$timeout){
$scope.createDrawing=函数(绘图){
$http.post('api/admin/drawings/create'{
图纸:图纸
}).success(函数(){
$timeout(函数(){
$scope.success=false;
$scope.drawing={};
} , 1500 );
console.log($scope.drawing);
}).错误(函数(){
console.log('Error database connect!')
});
};
}]);
控制器('pokayokes',['$scope','$http','$routeParams',函数($scope,$http,$routeParams,numberColFilter){
var pokayokeName=$routeParams.name;
$scope.name=pokayokeName;
变量编号=$routeParams.number;
$scope.number=编号;
$http.get('api/admin/pokayokes/get/'+pokayokeName+'/'+number)。
成功(功能(数据){
$scope.pokayokes=数据;
}).错误(函数(){
log('Error database connect!');
});
}]);
pokayokaCtr.filter('numberColFilter',function(){
返回函数(项目、编号){
var范围=[];
var start=7;
var end=开始+编号;
对于(变量i=开始;i<结束;i++)
{
射程推送(项目[i]);
}
返回范围;
};
});
// -------------------------------------------
//文章
// -------------------------------------------
控制器('articles',['$scope','$http',函数($scope,$http){
$http.get('api/admin/articles/get')。
成功(功能(数据){
$scope.articles=数据;
}).错误(函数(){
log('Error database connect!');
});
}]);
控制器('articleCreatePart1'、['$scope'、'$http'、'$routeParams'、'PantonLoader'、'$timeout'、'$location',函数($scope、$http、$routeParams、PantonLoader、$timeout、$location){
var drawingName=$routeParams.name;
$scope.name=drawingName;
console.log(drawingName);
PantonLoader(功能(数据){
$scope.pantons=数据;
});
$scope.articleCreatePart1=函数(项目){
$http.post('api/admin/articles/createPart1/'+drawingName+'/'+articleName{
第条:第条
}).success(函数(){
$timeout(函数(){
$scope.success=false;
$scope.article={};
} , 1500 );
var articleName=$scope.article.nazwa_art;
console.log(articleName);
var newPath=$location.path('/admin/article/create/part2/'+drawingName+'/'+articleName);
console.log(newPath);
log($scope.article);
}).错误(函数(){
log('Error database connect!');
});
};
}]);
pokayokatr.factory('pantonsLoader',['$http','$routeParams',函数($http,$routeParams){
var drawingName=$routeParams.name\u rys;
返回函数(successCallback){
$http.get('api/admin/pantons/get/'+drawingName)。
成功(successCallback)。错误(函数(){
console.log('Błd pobrania pliku z bazy danych!pantons');
});
};
}]);
// -------------------------------------------
//潘顿
// -------------------------------------------
控制器('pantons',['$scope','$http',函数($scope,$http){
$http.get('api/admin/pantons/get')。
成功(功能(数据){
$scope.pantons=数据;
console.log($scope.pantons);
}).错误(函数(){
console.log('Błd pobrania pliku z bazy danych!pantons');
});
}]);
控制器('createPanton',['$scope','$http','$timeout',函数($scope,$http,$timeout){
$scope.createPanton=函数(panton){
$http.post('api/admin/pantons/create'{
潘顿:潘顿
}).success(函数(){
$scope.success=true;
$timeout(函数(){
$scope.success=false;
$scope.panton={};
} , 1500 );
}).错误(函数(){
log('Error database connect!');
});
};
}]);
以及错误消失的文件(在我更改控制器之前,一切正常,没有错误):


{{panton.nazwa_pan}}

替换
var drawingName=$routeParams.name
var drawingName=$routeParams.drawingName

基本上,您正在对具有重复元素的对象执行
ng repeat
,您可以通过在
ng repeat
结束中添加
track by$index
来避免这种情况,然后您可以轻松地循环数组中的重复值

ng-repeat="panton in pantons | filter : search track by $index"

对于dups错误,您可以在
ng repeat
中添加
track by$index
,比如
ng repeat=“panton in pantons | filter:search track by$index”
我应该将其添加为答案吗?是的,因为
ng-repeat="panton in pantons | filter : search track by $index"