模板视图和AngularJS之间冲突的解决方法


Posted in Javascript onNovember 22, 2016

本文实例讲述了模板视图和AngularJS之间冲突的解决方法。分享给大家供大家参考,具体如下:

问题:

在php的mvc视图中,我们需要在加载的过程中

传递一些数据给模板:

如:

这里是某个 controller

$data['users'] = {something from databases};
$this->load->view('home/index',$data);

这里是对应的视图

<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对其进行赋值,ok

第二种解决方案(推荐):

我们使用ng-if属性解决我们的问题,对于users未定义时调用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>

demo演示地址:https://jsfiddle.net/mser49aq/1/

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
jQuery 幻灯片插件(带缩略图功能)
Jan 24 Javascript
alert中断settimeout计时功能
Jul 26 Javascript
jQuery中filter()方法用法实例
Jan 06 Javascript
探讨JavaScript中的Rest参数和参数默认值
Jul 29 Javascript
JS实现汉字与Unicode码相互转换的方法详解
Apr 28 Javascript
AngularJS自定义指令实现面包屑功能完整实例
May 17 Javascript
Web制作验证码功能实例代码
Jun 19 Javascript
electron demo项目npm install安装失败的解决方法
Feb 06 Javascript
详解JS中统计函数执行次数与执行时间
Sep 04 Javascript
简化版的vue-router实现思路详解
Oct 19 Javascript
vue通过video.js解决m3u8视频播放格式的方法
Jul 30 Javascript
keep-alive不能缓存多层级路由菜单问题解决
Mar 10 Javascript
js入门之Function函数的使用方法【新手必看】
Nov 22 #Javascript
AngularJS变量及过滤器Filter用法分析
Nov 22 #Javascript
jQuery中$.grep() 过滤函数 数组过滤
Nov 22 #Javascript
JavaScript实现图片轮播组件代码示例
Nov 22 #Javascript
浅析JavaScriptSerializer类的序列化与反序列化
Nov 22 #Javascript
JS如何设置iOS中微信浏览器的title
Nov 22 #Javascript
原生JS查找元素的方法(推荐)
Nov 22 #Javascript
You might like
php&amp;java(一)
2006/10/09 PHP
通过文字传递创建的图形按钮
2006/10/09 PHP
php 获得汉字拼音首字母的函数
2009/08/01 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
NodeJS学习笔记之Connect中间件模块(二)
2015/01/27 NodeJs
jQuery插件MixItUp实现动画过滤和排序
2015/04/12 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
2016/08/24 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
2020/06/17 Javascript
如何利用javascript接收json信息并进行处理
2020/08/06 Javascript
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
使用Python爬取最好大学网大学排名
2018/02/24 Python
Python中函数参数调用方式分析
2018/08/09 Python
python判断数字是否是超级素数幂
2018/09/27 Python
Python中创建二维数组
2018/10/17 Python
手写一个python迭代器过程详解
2019/08/27 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
python 日志模块 日志等级设置失效的解决方案
2020/05/26 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
奥地利网上书店:Weltbild
2017/07/14 全球购物
标准导师推荐信(医学类)
2013/10/28 职场文书
幼儿园家长评语大全
2014/04/16 职场文书
卫生院健康教育实施方案
2014/06/07 职场文书
家具公司总经理岗位职责
2014/07/08 职场文书
国庆横幅标语
2014/10/08 职场文书
2014年销售经理工作总结
2014/12/01 职场文书
vue+springboot实现登录验证码
2021/05/27 Vue.js
python析构函数用法及注意事项
2021/06/22 Python
golang为什么要统一错误处理
2022/04/03 Golang
浅谈Node的内存泄露问题
2022/05/06 NodeJs
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers