重构与动态为angularjs栏位赋值或获取值
先来看下面一段html:

这个ng-model名称带有一定的规律带有序号。
先来实现数据绑定,从数据取到数据后,为ng-model绑定相对应的值:

var c = response.data
$scope.Start1 = $filter("jsonDateFormat")(c.Start1, "yyyy-MM-dd");
$scope.Start2 = $filter("jsonDateFormat")(c.Start2, "yyyy-MM-dd");
$scope.Start3 = $filter("jsonDateFormat")(c.Start3, "yyyy-MM-dd");
$scope.Start4 = $filter("jsonDateFormat")(c.Start4, "yyyy-MM-dd");
$scope.Start5 = $filter("jsonDateFormat")(c.Start5, "yyyy-MM-dd");
$scope.Start6 = $filter("jsonDateFormat")(c.Start6, "yyyy-MM-dd");
$scope.Start7 = $filter("jsonDateFormat")(c.Start7, "yyyy-MM-dd");
$scope.Start8 = $filter("jsonDateFormat")(c.Start8, "yyyy-MM-dd");
$scope.Start9 = $filter("jsonDateFormat")(c.Start9, "yyyy-MM-dd");
$scope.Start10 = $filter("jsonDateFormat")(c.Start10, "yyyy-MM-dd");
$scope.Start11 = $filter("jsonDateFormat")(c.Start11, "yyyy-MM-dd");
$scope.Start12 = $filter("jsonDateFormat")(c.Start12, "yyyy-MM-dd");
$scope.Start13 = $filter("jsonDateFormat")(c.Start13, "yyyy-MM-dd");
$scope.End1 = $filter("jsonDateFormat")(c.End1, "yyyy-MM-dd");
$scope.End2 = $filter("jsonDateFormat")(c.End2, "yyyy-MM-dd");
$scope.End3 = $filter("jsonDateFormat")(c.End3, "yyyy-MM-dd");
$scope.End4 = $filter("jsonDateFormat")(c.End4, "yyyy-MM-dd");
$scope.End5 = $filter("jsonDateFormat")(c.End5, "yyyy-MM-dd");
$scope.End6 = $filter("jsonDateFormat")(c.End6, "yyyy-MM-dd");
$scope.End7 = $filter("jsonDateFormat")(c.End7, "yyyy-MM-dd");
$scope.End8 = $filter("jsonDateFormat")(c.End8, "yyyy-MM-dd");
$scope.End9 = $filter("jsonDateFormat")(c.End9, "yyyy-MM-dd");
$scope.End10 = $filter("jsonDateFormat")(c.End10, "yyyy-MM-dd");
$scope.End11 = $filter("jsonDateFormat")(c.End11, "yyyy-MM-dd");
$scope.End12 = $filter("jsonDateFormat")(c.End12, "yyyy-MM-dd");
$scope.End13 = $filter("jsonDateFormat")(c.End13, "yyyy-MM-dd");
Source Code
以上方法,最原始了,一一绑定。有没有一个简单一点的,只实现名称序号循环。

var c = response.data
var objs = [
{ S: c.Start1, E: c.End1 },
{ S: c.Start2, E: c.End2 },
{ S: c.Start3, E: c.End3 },
{ S: c.Start4, E: c.End4 },
{ S: c.Start5, E: c.End5 },
{ S: c.Start6, E: c.End6 },
{ S: c.Start7, E: c.End7 },
{ S: c.Start8, E: c.End8 },
{ S: c.Start9, E: c.End9 },
{ S: c.Start10, E: c.End10 },
{ S: c.Start11, E: c.End11 },
{ S: c.Start12, E: c.End12 },
{ S: c.Start13, E: c.End13 }
];
var i = 1;
while (i <= 13) {
$scope['Start' + i] = $filter("jsonDateFormat")(objs[i - 1].S, "yyyy-MM-dd");
$scope['End' + i] = $filter("jsonDateFormat")(objs[i - 1].E, "yyyy-MM-dd");
i++;
}
Source Code
这样一改,简洁多了。不过还得把获取的数据源进行一次转换为阵列。
下面第3次修改:

var i = 1;
while (i <= 13) {
$scope['Start' + i] = $filter("jsonDateFormat")(c['Start' + i], "yyyy-MM-dd");
$scope['End' + i] = $filter("jsonDateFormat")(c['End' + i], "yyyy-MM-dd"); i++;
}
Source Code
OK,讲完绑定,现在我们来说说获取ng-model的值:

object.Start1 = $scope.Start1;
object.Start2 = $scope.Start2;
object.Start3 = $scope.Start3;
object.Start4 = $scope.Start4;
object.Start5 = $scope.Start5;
object.Start6 = $scope.Start6;
object.Start7 = $scope.Start7;
object.Start8 = $scope.Start8;
object.Start9 = $scope.Start9;
object.Start10 = $scope.Start10;
object.Start11 = $scope.Start11;
object.Start12 = $scope.Start12;
object.Start13 = $scope.Start13;
object.End1 = $scope.End1;
object.End2 = $scope.End2;
object.End3 = $scope.End3;
object.End4 = $scope.End4;
object.End5 = $scope.End5;
object.End6 = $scope.End6;
object.End7 = $scope.End7;
object.End8 = $scope.End8;
object.End9 = $scope.End9;
object.End10 = $scope.End10;
object.End11 = $scope.End11;
object.End12 = $scope.End12;
object.End13 = $scope.End13;
Source Code
以上,也是最原始的获取方法,一个一个进行获取。
从上面的绑定方法与原理,我们对获取ng-model有值,也可以使用循环的方法来进行。

var i = 1;
while (i <= 13) {
object['Start' + i] = $scope['Start' + i];
object['End' + i] = $scope['End' + i];
i++;
}
Source Code
重构与动态为angularjs栏位赋值或获取值的更多相关文章
- Odoo8.0中允许用户动态调整TreeView栏位宽度
现有的Odoo8.0中TreeView的栏位宽度是固定的,不可以手动调整,通过安装第三方插件后,可以实现手工动态调整. 下载模块安装即可.http://download.csdn.net/detail ...
- 基于jquery的表格动态创建,自动绑定,自动获取值
最近刚加入GUT项目,学习了很多其他同事写的代码,感觉受益匪浅. 在GUT项目中,经常会碰到这样一个问题:动态生成表格,包括从数据库中读取数据,并绑定在表格中,以及从在页面上通过jQuery新增删除表 ...
- java反射遍历实体类属性和类型,并赋值和获取值
/* * GetModelNameAndType.java * Version 1.0.0 * Created on 2017年12月15日 * Copyright ReYo.Cn */ packag ...
- org.postgresql.util.PSQLException: 栏位索引超过许可范围:3,栏位数:2。
org.postgresql.util.PSQLException: 栏位索引超过许可范围:3,栏位数:2. 今天在写完SQL进行查询的时候,后台一直报错显示上面的信息.看错误完全不知道原因,就重新检 ...
- input 栏位光标末尾闪烁
var input1 =window.document.getElementById("input1").createTextRange(); input1.collapse(fa ...
- (转)[SQL Server] 动态sql给变量赋值(或返回值给变量)
本文转载自:http://blog.csdn.net/xiaoxu0123/article/details/5684680 [SQL Server] 动态sql给变量赋值(或返回值给变量) decla ...
- C# 动态绘制任务栏图标的实现
通常我们在做一个应用时会遇到这样的需求:将收到的消息条数显示到任务栏,比如如下的效果 怎么实现呢? 答案是采用WindowsAPICodePack实现,具体参见:Windows 7 任务栏开发 之 覆 ...
- 6 关于 Oracle NULL栏位和PL./SQL执行实验
今日有针对NULL值有了相关实验. 对NULL 值插入的讨论. 1, PL/SQL 中可以执行插入''或者NULL 的操作, 前提是栏位允许为空. 2, 可以对NULL进行一系列数据库运算. 如: ...
- ZZ_INEERNAL每个栏位的含义
ZZ_INEERNAL包含10列,每列之间用,隔开 第一列:exception class,有KE/NE/JE/EE等 第二列:pid 第三列:tid 第四列:固定是99 第五列:固定是/data/c ...
随机推荐
- JVM: JVM 内存划分
概述 如果在大学里学过或者在工作中使用过 C 或者 C++ 的读者一定会发现这两门语言的内存管理机制与 Java 的不同.在使用 C 或者 C++ 编程时,程序员需要手动的去管理和维护内存,就是说需要 ...
- ThreeJS 物理材质shader源码分析(顶点着色器)
再此之前推荐一款GLTF物理材质在线编辑器https://tinygltf.xyz/ ThreeJS 物理材质shader源码分析(顶点着色器) Threejs将shader代码分为ShaderLib ...
- Yum注册
我虚拟机安装的系统是RedHat Enterprise Linux 6.4-i686,是32位的.使用yum命令安装软件时候出现以下错误: This system is not registered ...
- SpringBoot高级篇Ⅸ --- 热部署与监控管理
一.热部署 在开发中我们修改一个Java文件后想看到效果不得不重启应用,这导致大量时间花费,我们不希望重启应用的情况下,程序可以自动部署(热部署). 1.1 模板引擎 在SpringBoot中开发情况 ...
- ElasticSearch快速入门
知识储备 学习ElasticSearch之前可以先了解一下lucene,这里是我整理的一篇关于lucene的笔记(传送门),对搜索框架有兴趣的还可以了解一下另一款企业级搜索应用服务器---solr(传 ...
- Java之路——初识Eclipse
零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...
- springIOC源码接口分析(四):MessageSource
一 定义方法 MessageSource接口用于支持信息的国际化和包含参数的信息的替换 这个接口定义了三个方法: public interface MessageSource { /** * 解析co ...
- Docker | Mac 通过 Docker 安装 Oracle
Docker | Mac 通过 Docker 安装 Oracle 前言: Oracle 10g 以后就不支持 Mac 版本,因此 Mac 用户需要安装的话可以通过虚拟机或者 Docker 1.在 do ...
- maven jar 包问题
1. Failure to transfer... 这种错误基本是所需要的 jar 包不存在,或者下载不完整,可去本地仓库查看相关 jar 文件的完整性 解决方案: 删除对应 jar 包,重新下载(删 ...
- 微信小程序 npm 找不到npm包 没有找到可以构建的npm包 如何使用第三方npm组件
微信官方的npm文档 太模糊了,而且感觉把最重要的东西写在了最后面,我这里费了老大功夫才知道这个坑. 初次使用,首先要初始化 npm 初始化——> 找到 pages 这个文件夹,然后进入这个文件 ...