背景: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>
分享到:
相关推荐
angularjs-form-builder, 使用AngularJS编写的简单窗体生成器应用程序 angularjs-form-builder用AngularJS编写的简单表单生成器应用程序。 它使用自定义指令。有关项目和功能的完整概述,请参见 ...
正式形式 应用正式使用Angular
正式建设者 一个用于formly-js的构建器应用程序,用于拖放式表单创建,该应用程序输出表单所需的JSON。
AngularJS表单示例 该存储库包含由AngularJS支持的虚拟联系表单。 可以在查看实际运行情况 上有此表单的分步教程。 安装 只需将此存储库克隆到可从本地Web服务器访问的目录中即可。...angularjs-form-to-google-sheets
赠送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; ...
使用Web组件(lit-element)实现Angular Formly 安装 npm i lit-formly-forms lit-html lit-element 表格定义 首先,您必须定义Formly指定的表单字段: const config = [ { id : "1" , key : "name" , type : ...
赠送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...
赠送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...
关于applicationx-www-form-urlencoded等字符编码的解释说明,挺有用的,如果你开发Restful Web service。
1.SendNotification.jsp:发送通知页面,表单提交数据的类型为multipart/x-www-form-urlencoded 2.RecvNotification.jsp:接收通知页面 3.页面简单使用了Bootstrap样式 4.开发工具使用IDEA
赠送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.4","angular-formly": "~6.24"安装用Bower安装bower install angular-formly-loader 将脚本导入到您的应用中[removed][removed] 将formlyLoader工厂添加为Angular控制器中的依赖项基本用法form.jso
el-table,el-form在vue中封装组件化,含操作按钮和插槽
angular-schema-form-strap-datetimepicker 使用 angular-strap 实现的 angular-schema-form 的日期和时间选择器
#AngularJS业务应用线Kurata-AngularJS-LOB-Apps 当前正在模块7上工作...但是Save按钮的ng-disabled指令存在一个错误: 我完成了模块7,在其中向表单添加了验证,但是,它一直停留在修复Save按钮的ng-disabled指令上...
requirejs-angularjs-uiroute-uploadfile 用requirejs搭建angularjs项目,以及angularjs常用功能使用demo #注意 项目的资源并没有用bower管理,直接提交了 先手动搭建一个server,让项目可以正常访问 index.html是...
Angular-Angular6-json-schema-form.zip,angular2-json-schema-formangular6-json-schema-form的角v6 。,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的...
异步提交表单和上传文件jquery-form.js
ajax-axios-url-form-serialize 插件
k-form-design表单设计器 v3.8.18.zip