angularjs에서 내 페이징 지시문을 작성하려고합니다.AngularJS 페이징 지시문이 작동하지 않습니다.
나는 "다음"을 클릭하면 내가 예외가 http://plnkr.co/edit/M7kIjoKNmIWXOyRDfzZg
의 코드는 말을 참조하십시오 내가 잘못 뭐하는 거지 Non-assignable model expression: 1
?
angularjs에서 내 페이징 지시문을 작성하려고합니다.AngularJS 페이징 지시문이 작동하지 않습니다.
나는 "다음"을 클릭하면 내가 예외가 http://plnkr.co/edit/M7kIjoKNmIWXOyRDfzZg
의 코드는 말을 참조하십시오 내가 잘못 뭐하는 거지 Non-assignable model expression: 1
?
당신의 지시에 격리 범위는해야한다 :
=
를 사용
scope: {
'currentPage': '@',
'pageSize': '@',
}
는 값이 바인딩 두 가지 방법으로 데이터를 수행하기 위해 부모 범위의 값에 대한 참조가 될 것으로 기대하고있다. =
을 사용하려면 컨트롤러에 currentPage
및 pageSize
항목을 입력 한 다음 <paging page-size="pageSize" current-page="currentPage"></paging>
을 입력해야합니다.
편집 : 당신이 parseInt
를 사용해야합니다, 그래서 currentPage
및 pageSize
문자열을 만들 것입니다 @
사용.
'currentPage':'=',
을하지만 당신은 index.html을의 지침을 만들 때
<paging page-size="1" current-page="1"></paging>
그래서 거기에 값을 전달 :
문제는 당신이 당신의 범위에 currentPage의 모델을 할당하는 것입니다 이 문제를 해결하는 두 가지 방법이 있습니다. 하나는 컨트롤러에 현재 페이지라는 다른 변수를 작성한 다음 지시문을 다음과 같이 변경하는 것입니다.
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.currentPage = 1;
});
HTML
<paging page-size="1" current-page="currentPage"></paging>
또는 당신이 당신의 지시에 범위를 만들 방법을 변경 :
scope:{
'currentPage':'@',
'pageSize':'=',
}
당신이로 오는대로,이 경로를 사용하는 경우를 int로 구문 분석해야합니다 문자열