Javascript 使用$routeParams未定义和ngRepeat:Dups错误
我试图使$routeParams不是未定义的,我不知道我做了什么,但重复:Dups错误出现了。我犯了什么错误? 我想我想做: 我有这个网址: 我希望参数(11_000402_A0)传递给API,但Angular不会读取表单url,并且参数仍然未定义。我的代码如下: 带路由的app.js: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
'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"