이 기사의 예에서는 템플릿 보기와 AngularJS 간의 충돌을 해결하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
문제:
PHP의 mvc 보기에서 일부 데이터를 템플릿에
전달해야 합니다. 로딩 과정 중:
예:
여기에 특정 컨트롤러가 있습니다
$data['users'] = {something from databases}; $this->load->view('home/index',$data);
여기에 해당 컨트롤러가 있습니다. view
<div ng-controller="loadData"> <ul> <!--1. 初始化的时候我们需要使用下面这句--> <?php foreach(users as user):?> <li><?=$user->name?>:<?=$user->email?><li> <?php endforeach?> <!--2. 但是结束后 我们需要使用这句 通过ajax 更新 --> <li ng-repeat="user in users">{{user.name}}:{{user.email}}</li> </ul> </div>
이제 문제는 1과 2의 모순을 어떻게 처리할 것인가 하는 것입니다.
첫 번째 해결 방법:
<script> var usersPrefetch = [ <?php foreach(users as user):?> {"name": "<?=$user->name?>", "email": "<?=$user->email?>"}, <?php endforeach?> ]; </script>
php에서 전달한 데이터를 변수에 저장한 다음
$scope 할당을 전달합니다. 값을 넣으세요
두 번째 해결책(권장):
ng-if 속성을 사용하여 문제를 해결하고 사용자가 정의되지 않은 경우 PHP 데이터를 호출합니다.
ajax 이후 전송이 완료되면 데이터를 사용하고 $scope.users
<ul ng-if="!users"> <?php foreach(users as user):?> <li><?=$user->name?>:<?=$user->email?><li> <?php endforeach?> </ul> <ul ng-if="users"> <li ng-repeat="user in users">{{user.name}}:{{user.email}}</li> </ul>