背景:H5页采用formly-form组件,JS定义数据绑定,某元素需要定制输入样式,比如说范围输入
上菜:
一、H5页面
<!DOCTYPE html>
<html ng-app="indexApp">
<head>
<meta charset="UTF-8">
<title>webapp</title>
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css">
</head>
<body>
<!-- 这里采用了controller as语法 -->
<div ng-controller ="appCtrl as vm">
<form ng-submit="vm.onSubmit()">
<formly-form model="vm.user" fields="vm.userFields">
<button type="submit">Submit</button>
</formly-form>
</form>
<pre>
{{vm.user}}
</pre>
</div>
<!-- formly 必备组件 -->
<script src="bower_components/api-check/dist/api-check.js"></script>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-formly/dist/formly.js"></script>
<script src="bower_components/angular-formly-templates-bootstrap/dist/angular-formly-templates-bootstrap.js"></script>
<!-- 引入区域框 -->
<script src="comp/rangeInput.js"></script>
<script src="demo_formly.js"></script>
</body>
</html>
二、demo_formly.js
var module = angular.module('indexApp',
[
'formly',
'formlyBootstrap',
'rangeinput'
]
);
module.controller('appCtrl', function ($scope) {
var vm = this; // vm stands for "View Model" --> see https://github.com/johnpapa/angular-styleguide#controlleras-with-vm
vm.user = {
username:"pet",
password:"12345",
};
vm.userFields = [
{
// the key to be used in the model values
// so this will be bound to vm.user.username
key: 'username',
type: 'input',
templateOptions: {
label: 'Username',
placeholder: 'johndoe',
required: true,
description: 'Descriptive text'
}
},
{
key: 'password',
type: 'input',
templateOptions: {
type: 'password',
label: 'Password',
required: true
},
expressionProperties: {
'templateOptions.disabled': '!model.username' // disabled when username is blank
}
},
{
key:'pay_cnt_30',
//注意这里ng-model绑定属性的写法
template: '<span>30天支付订单</span><range-input ng-model="model[options.key]"></range-input>'
}
];
vm.onSubmit = onSubmit;
function onSubmit() {
console.log('form submitted:', vm.user);
}
<!-- 也可以直接在$scope上定义方法,html上调用时,直接用onSubmit()即可 -->
$scope.onSubmit = function () {
console.log('form submitted:', vm.user);
}
console.log(vm);
console.log($scope);
});
三、pay_cnt_30属性采用自定义H5模板,内含定制directive
angular.module('rangeinput',[])
.directive('rangeInput',function () {
return{
restrict : 'E',
templateUrl : 'comp/rangeInput.html',
scope:{
rangeValue : '=ngModel' //注意这里将rangeValue绑定到attr上名为ngModel的属性
},
link:function (scope,element,attrs) {
scope.range = {
min: 0,
max: null
};
//观察的也是绑定的attr属性名,要带引号
attrs.$observe('ngModel', function (value) {
if (scope.rangeValue != null) {
var target = scope.rangeValue.split(",");
scope.min = target[0];
scope.max = target[1];
}
});
//$watch的对象为scope上的对象,且要带引号
scope.$watch('range',function(newValue,oldValue) {
var min = scope.range.min==null? "0" : scope.range.min;
var max = scope.range.max==null? "*" : scope.range.max;
if(max!="*" && min > max){
scope.range.min = max;
}
scope.rangeValue = min+","+max;
},true);
}
}
});
四、directive的H5模板
<div style="display: inline">
<input ng-model="range.min" type="number">
</div>
<div style="display: inline">
<span>-</span>
</div>
<div style="display: inline">
<input type="number" ng-model="range.max">
</div>
分享到:
相关推荐
标题"Formly-form:应用正式使用Angular"表明我们将讨论一个名为"Formly-form"的项目或库,它与Angular框架的实战应用有关。Angular是一款流行的前端开发框架,由Google维护,用于构建动态、高性能的Web应用程序。而...
angularjs-form-builder, 使用AngularJS编写的简单窗体生成器应用程序 angularjs-form-builder用AngularJS编写的简单表单生成器应用程序。 它使用自定义指令。有关项目和功能的完整概述,请参见 ...
- **Field**: `rc-field-form`中的基本单位,它封装了输入组件,负责状态管理和验证。 - **Form**: 表单容器,用于管理多个Field,提供表单级的提交、重置等操作,并处理验证逻辑。 - **Rules**: 验证规则,可以...
赠送jar包:feign-form-spring-3.8.0.jar; 赠送原API文档:feign-form-spring-3.8.0-javadoc.jar; 赠送源代码:feign-form-spring-3.8.0-sources.jar; 赠送Maven依赖信息文件:feign-form-spring-3.8.0.pom; ...
multipart/form-data是另一种常用的编码格式,它将窗体数据编码为一条消息,页上的每个控件对应消息中的一个部分。这种编码格式可以上传文件,并且可以处理复杂的数据结构。 在实际开发中,我们需要根据具体情况...
赠送jar包:feign-form-3.8.0.jar; 赠送原API文档:feign-form-3.8.0-javadoc.jar; 赠送源代码:feign-form-3.8.0-sources.jar; 赠送Maven依赖信息文件:feign-form-3.8.0.pom; 包含翻译后的API文档:feign-form...
AngularJS表单示例 该存储库包含由AngularJS支持的虚拟联系表单。 可以在查看实际运行情况 上有此表单的分步教程。 安装 只需将此存储库克隆到可从本地Web服务器访问的目录中即可。...angularjs-form-to-google-sheets
在实际应用中,formly-builder通常与AngularJS框架结合使用,因为formly-js最初是为AngularJS设计的。然而,随着技术的发展,formly-js也逐渐支持了其他前端框架,如Angular(新版本)和React。因此,formly-builder...
其次,作为一款源码开放的工具,"k-form-design"允许开发者深入定制其内部逻辑和外观样式,以满足特定项目的需求。你可以根据自己的毕业设计论文主题,分析并改进其现有的功能,甚至扩展出新的功能模块。这对于提升...
在AngularJS中,表单验证是确保用户输入数据正确性和安全性的关键步骤。Angular-formly是一个强大的库,它简化了创建动态和复杂的AngularJS表单的过程,包括验证。本篇文章将深入探讨如何使用angular-formly进行表单...
使用Web组件(lit-element)实现Angular Formly 安装 npm i lit-formly-forms lit-html lit-element 表格定义 首先,您必须定义Formly指定的表单字段: const config = [ { id : "1" , key : "name" , type : ...
在`vue-ele-form-master`这个压缩包中,我们通常会找到以下文件和目录: - `src`:源代码目录,包含组件的主要实现,如`index.vue`是vue-ele-form的主要入口文件。 - `examples`:示例代码,用于展示如何在项目中...
如果你的项目使用的是 AngularJS 1.x,确保 `angular-formly` 已经安装。 2. **引入依赖**:在你的应用模块中,注入 `formlyJsonschema` 模块作为依赖。例如: ```javascript var app = angular.module('myApp', ...
1.SendNotification.jsp:发送通知页面,表单提交数据的类型为multipart/x-www-form-urlencoded 2.RecvNotification.jsp:接收通知页面 3.页面简单使用了Bootstrap样式 4.开发工具使用IDEA
**AngularJS与Angular-Formly** AngularJS,是由Google维护的JavaScript框架,主要用于构建动态Web应用。它通过双向数据绑定、依赖注入和模块化等特性,简化了前端开发流程,提高了开发效率。AngularJS的核心是MVC...
赠送jar包:feign-form-spring-3.8.0.jar; 赠送原API文档:feign-form-spring-3.8.0-javadoc.jar; 赠送源代码:feign-form-spring-3.8.0-sources.jar; 赠送Maven依赖信息文件:feign-form-spring-3.8.0.pom; ...
1. **Angular-Formly 基础**:Angular-Formly 包括一个服务(`formly`)和一组指令(如 `formly-form` 和 `formly-field`),这些组件协同工作,根据配置的 JSON 数据生成表单。JSON 数据定义了表单字段的类型、属性...
vest-form-master.zip 文件包含的项目是一个完整的 vest-form 框架的源码仓库。这个框架的核心特点是其自定义组件功能,这使得开发者能够根据实际需求定制自己的表单组件,以满足各种复杂场景下的表单验证和处理。 ...
总结起来,“angular-schema-form-strap-datetimepicker”是AngularJS开发中的一个强大工具,它结合了Angular Schema Form的动态表单能力和Angular Strap的日期时间选择器,提供了高效、灵活的日期和时间输入方式。...
本项目“广告-AngularJS-实用-项目”旨在通过实践帮助开发者深入理解AngularJS的核心概念和实际应用。 首先,AngularJS的核心特性包括双向数据绑定、依赖注入、模块化以及指令系统。在本项目中,你会了解到如何利用...