>  기사  >  웹 프론트엔드  >  템플릿 보기와 AngularJS 간의 충돌에 대한 솔루션

템플릿 보기와 AngularJS 간의 충돌에 대한 솔루션

高洛峰
高洛峰원래의
2016-12-05 17:01:021542검색

이 기사의 예에서는 템플릿 보기와 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>


정의
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.