数据表单$scope在Angular的view (page)中不显示
Data form $scope not display in view (page) in Angular
我是Angular的新手,我在视图页面上显示数据有问题。我怎么不知道为什么这是问题,因为所有的数据从API和窗体控制器在console.log显示正确。
我的控制器:
'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('Błąd połączenia z bazą danych.')
});
};
}]);
pokayokaCtr.controller( 'pokayokes' , [ '$scope' , '$http', '$routeParams', function( $scope, $http, $routeParams ){
// var drawingId = $routeParams.id;
// $scope.id = drawingId;
var pokayokeName = $routeParams.name;
$scope.name = pokayokeName;
$http.get( 'api/admin/pokayokes/get/' + pokayokeName ).
success( function( data ){
$scope.pokayokes = data;
// var test = data.ile_py
// console.log( test );
}).error( function(){
console.log( 'Błąd pobrania pliku z bazy danych poka-yoke' );
});
}]);
pokayokaCtr.filter('rangeFilter', function() {
return function(input, total) {
total = parseInt(total);
for (var i=6; i<=total; i++)
input.push(i);
return input;
};
});
// -------------------------------------------
// 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( 'Błąd pobrania pliku z bazy danych! articles' );
});
}]);
pokayokaCtr.controller( 'articleCreatePart1' , [ '$scope' ,'$routeParams', 'pantonsLoader', function( $scope, $routeParams, pantonsLoader ){
var drawingName = $routeParams.name_rys;
$scope.name_rys = drawingName;
pantonsLoader(function (data){
$scope.pantons = data;
console.log(data);
});
$scope.articleCreatePart1 = function (article) {
$http.post('api/admin/articles/create' + drawingName, {
article : article
}).success(function(){
$timeout(function(){
$scope.success = false;
$scope.article = {};
} , 1500 );
console.log($scope.article);
}).error(function(){
console.log('Błąd połączenia z bazą danych.')
});
};
}]);
pokayokaCtr.factory('pantonsLoader', ['$http', function($http) {
return function () {
$http.get( 'api/admin/pantons/get' ).
success( function( data ){
console.log(data);
}).error( function(){
console.log( 'Błąd pobrania pliku z bazy danych! pantons' );
});
};
}])
Part form page view in html(这部分在ng-view中):
<div class="col-lg-12">
<div class="flat-panel">
<div class="flat-panel-header">
<h3 class="page-header">Choose panton's color </h3>
<div class="row">
<div class="form-group col-md-12">
<label for="nazwaRysunku">Search name: </label>
<input type="text" class="form-control" placeholder="szukaj..." ng-model="search.nazwa_pan">
</div>
</div>
</div>
<div class="flat-panel-body">
<div class="row">
<div class="col-md-12" >
<div class="p-pantony" >
<label ng-repeat="panton in pantons | filter : search" class="checkbox-inline" style="width: 100px; float: left; border-bottom: 10px solid rgb({{panton.R}}, {{panton.G}}, {{panton.B}} ) margin:0 10px 10px 0;">
<!-- <input type="checkbox" ng-model="article.pantonP" > x -->
<input type="checkbox" ng-model="panton.nazwa_pan" ng-true-value="true" ng-false-value="false" > {{panton.nazwa_pan}}
</label>
</div>
</div>
</div>
</div> <!-- .flat-panel-body -->
</div>
</div>
</div> <!-- /.row -->
我在另一个文件中有同样的问题-我不能使用正常绑定,但ng-repeat正在工作。
12.08.2015 - edit:
我制作了过滤器并添加到控制器中,我的代码如下:
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 = 4;
var end = start + number;
for (var i = start; i < end; i++)
{
range.push(items[i]);
}
return range;
};
});
我检查了控制器和过滤器中的断点和'number'是可以的,数字有数字,但'end'和' I '是未定义的。为什么呢?这个过滤器写得好吗?因为当我将这个过滤器添加到html时,页面显示'[]'。
我像这样添加了这个过滤器(代码如下),这是可以的吗?
<thead>
<tr>
<th>Lp.</th>
<th>Image</th>
<th>Name <i class="fa fa-chevron-down"></i> </th>
<th >Colors in article</th>
<th ng-repeat="pokayoke in pokayokes">{{$index + 1 | numberColFilter }}</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="pokayoke in pokayokes" >
<td>{{$index + 1}}</td>
<td><a href=""> <i class="fa fa-picture-o"></i> View</a></td>
<td>{{pokayoke.name_dra</i> </td>
<td>{{pokayoke.colors_art}}</td>
<td ng-repeat="num in pokayoke" >{{ num | numberColFilter}}</td>
</tr>
</tbody>
看起来好像您有一个文本框,您正在使用它,以便用户可以按术语搜索过滤器,这是存储到$scope.search.nazwa_pan
。然而,在过滤器中,您让它只针对$scope.search
进行过滤,因此它实际上并没有像您可能正在寻找的那样进行比较。
编辑(匹配更新后的问题):
在控制器的第一行中,不需要引用控制器中的过滤器。
pokayokaCtr.controller( 'pokayokes' , [ '$scope' , '$http', '$routeParams', function( $scope, $http, $routeParams, numberColFilter )
应该pokayokaCtr.controller( 'pokayokes' , [ '$scope' , '$http', '$routeParams', function( $scope, $http, $routeParams)
同样,您的过滤器期望传入两个参数,但您只向它提供要迭代的项目-您根本没有使用'number'参数证明它。相反,您需要执行如下操作(因为下面的'4'是传递给过滤器函数第二个参数的值)。
<td ng-repeat="num in pokayoke" >{{ num | numberColFilter: 4}}</td>
或者,如果您要在$scope中存储一个数字。argumentNumber,使用下面的
<td ng-repeat="num in pokayoke" >{{ num | numberColFilter: argumentNumber}}</td>
相关文章:
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何在生成下载文件时显示加载动画
- React重新渲染但未显示正确的组件
- nodejs-expressjs上传图像并显示它们
- 使用JSP从服务器检索和显示图像
- 音频控件在mouseover上显示,在mouseout上淡出
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 显示5秒后隐藏潜水
- 画廊图像未显示
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 高亮显示时编辑文本大小和颜色
- AngularJS:路由到/page/:id并显示id'
- 自动突出显示当前的url(即使在/page/x)
- Angular JS编码的URL显示404 page
- 数据表单$scope在Angular的view (page)中不显示