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

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

高洛峰
풀어 주다: 2016-12-05 17:01:02
원래의
1594명이 탐색했습니다.

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


정의
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿